gpt4 book ai didi

mysql - 如何使用节点名称和特定属性值从 xml 文件中选择特定节点?

转载 作者:行者123 更新时间:2023-11-29 06:27:03 25 4
gpt4 key购买 nike

我有一个 MySQL 数据库,我在其中创建了一个表,其中包含一个 longtext 列,我将 xml 文件存储为一个字符串,所以我想问是否可以使用它们的名称获取节点和具体的属性值!这是我处理的 xml 示例:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<HWData>
<Header time="2013-05-29T13:39:34" uploaded="true" version="1.0" />
<NE vendorName="Nokia Siemens Networks" NEId="WBTS-431">
<EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="173" >
<UNIT vendorName="N" unitId="16" />
<UNIT vendorName="NOKIA SIEMENS NETWORKS" unitId="225" />
</EQHO>
<EQHO vendorName="NSN" equipmentHolderId="40192" >
<UNIT vendorName="AR" unitId="40267" />
</EQHO>
</NE>
<NE vendorName="Nokia Siemens Networks" NEId="WBTS-261">
<EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132" >
<EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132-1">
<UNIT vendorName="NN" unitId="1621" />
</EQHO>
</EQHO>
</NE>
</HWData>

可以使用“EQHO”(节点名称)和“NE-RNC-4/DN:NE-WBTS-4204/EQHO-173”(属性 MOID 的值)来使用 SQL 查询得到这个结果! :

   <NE vendorName="Nokia Siemens Networks" NEId="WBTS-261">
<EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132" >
<EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132-1">
<UNIT vendorName="NN" unitId="1621" />
</EQHO>
</EQHO>
</NE>

有人可以告诉我实现该目标的正确方法吗...任何其他建议或示例将不胜感激。提前致谢

最佳答案

MySQL 在查询 XML 数据方面的功能非常有限。有 ExtractValue() 可用于从 XML 文档中获取节点/属性值的函数,但它不能返回子树。

您最好的选择可能是在您选择的宿主语言中使用 xpath。根据所讨论的示例,通过节点名称和特定属性值获取特定节点的 Xpath 如下所示:

//EQHO[@MOID="NE-RNC-4/DN:NE-WBTS-4204/EQHO-173"]

上面的 xpath 返回所有 <EQHO> XML 文档中任意位置具有 MOID 的元素属性值等于 "NE-RNC-4/DN:NE-WBTS-4204/EQHO-173" .如果需要,您甚至可以在不知道属性名称的情况下通过替换 @MOID 来实现相同的目的。与 @* .

关于mysql - 如何使用节点名称和特定属性值从 xml 文件中选择特定节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com