使用 MySQL ExtractValue xpath 获取节点名称

Using MySQL ExtractValue xpath to get the name of a node

我一直在自己做一些研究,这似乎是不可能的,但也许有人可以在这里帮助我。

我有一些 xml 存储在数据库中,看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<msg>
    <head>
        <Blah>Blah</Blah>
    </head>
    <body>
        <FooDetails>
            <Foo>
                <FooId>9999</FooId>
                <FooField>
                    <Foobar>Foobar value blah</Foobar>
                </FooField>
            </Foo>
            <Bar>
                <BarId>123456789</BarId>
                <BarStatus>B</BarStatus>
            </Bar>
        </FooDetails>
    </body>
</msg>

我想知道是否有一个 ExtractValue xpath 配方可以只显示“FooDetails”。

本质上“FooDetails”是交易的类型。节点的子节点根据交易类型会有很大不同。

只是为了回答一些预期的问题,我们有一个第 3 方通过我们存储在数据库中的 API 向我们发送 XML,然后其他脚本出现并处理它。所以虽然XML的格式明显不理想,但也没有希望改变了。

谢谢!

似乎 MySQL 不支持您通常用于此类任务的两个函数:

  • 本地名称()
  • 姓名()

请看这里:The following XPath functions are not supported, or have known issues as indicated: