0

我正在尝试从 MySQL/MariaDB 表中的 XML 中选择一个节点的值

根据 MySQL 文档,在 MySQLfollowing-sibling中不支持作为 XPath 轴。有替代方案吗?

文档: http ://dev.mysql.com/doc/refman/5.1/en/xml-functions.html#function_extractvalue

我的 XML 结构类似于:

<fields>
    <record>
        <id>10</id>
        <value>Foo</value>
    </record>
    <record>
        <id>20</id>
        <value>Bar</value>
    </record>
</fields>

我需要找到 ID 为 10 的记录,并在<value></value>.

有效的 XPath/fields/record/id[text()=10]/following-sibling::value/text()将返回Foo

我有哪些选择?

谢谢!

4

2 回答 2

4

在这种简单的情况下,您不需要following-sibling. 试试这个:

/fields/record[id[text()=10]]/value/text()

id使用括号内的标签将您的上下文保留在,record以便以下斜杠下降到相应的兄弟姐妹id(与 具有相同的父级id)。

于 2013-11-14T14:39:41.317 回答
0

我有这个 XML:

<List>
    <Attribute>
        <Id>Name</Id>
        <Value>JOHN</Value>
    </Attribute>
</List>

下面是查询:

SELECT EXTRACTVALUE(xml, "List/Attribute[Id[text()='NAME']]/Value") FROM xx;

但是在“字段列表”中作为未知列“列表/属性[Id [文本()='国家']] /值”出现错误

于 2020-03-12T07:18:55.660 回答