MySQL ExtractValue 跟随兄弟替代

标签 mysql xml xpath mariadb extract-value

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

根据 MySQL 文档,following-sibling在 MySQL 中不支持作为 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

我有哪些选择?

谢谢!

最佳答案

在这个简单的例子中你不需要following-sibling。试试这个:

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

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

关于MySQL ExtractValue 跟随兄弟替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966453/

相关文章:

mysql - where子句mysql中的别名

php - 在 while 语句 PHP/MYSQL 中从时间表计算时间

c# - 预期的 LINQ 类型

javascript - 使用 javascript 相对 xpath 到绝对 xpath

python - 如何等到元素在 selenium python 中可用

MySQL:max() 和 group by 问题 - 值错误

java - 屏幕右侧的抽屉?

javascript - 如何在 Javascript 中克隆 XML 文档?

xml - 删除 XML 元素的 PowerShell 脚本

javascript - MySQL 查询与 JavaScript 处理性能