如何使用 xpath 或查询从 xml 中提取数据
How to use xpath or query to extract data from xml
我有一个 xml 文件看起来像
<info>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.118</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.119</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.120</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.157</Data>
<Data Name="IpPort">50118</Data>
</info>
我需要提取具有name属性值="Ipaddress"[=21=的数据节点] 和节点值 =10.1.2.157,我如何使用任何 xml 查询技术
如果 XML 是您的整个文档,那么以下 XPath 应该 select 您需要的 Data
元素:
./info/Data[@Name='IpAddress'][.='10.1.2.157']
./info/Data
将匹配名为 Data
的 info
的子节点,并且 [@Name='IpAddress'][.='10.1.2.157']
包含两个谓词 - 一个匹配 Name
属性具有 "IpAddress" 的值,另一个与您指定的元素内容相匹配。
我有一个 xml 文件看起来像
<info>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.118</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.119</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.120</Data>
<Data Name="IpPort">50118</Data>
<Data Name="ProcessName">-</Data>
<Data Name="IpAddress">10.1.2.157</Data>
<Data Name="IpPort">50118</Data>
</info>
我需要提取具有name属性值="Ipaddress"[=21=的数据节点] 和节点值 =10.1.2.157,我如何使用任何 xml 查询技术
如果 XML 是您的整个文档,那么以下 XPath 应该 select 您需要的 Data
元素:
./info/Data[@Name='IpAddress'][.='10.1.2.157']
./info/Data
将匹配名为 Data
的 info
的子节点,并且 [@Name='IpAddress'][.='10.1.2.157']
包含两个谓词 - 一个匹配 Name
属性具有 "IpAddress" 的值,另一个与您指定的元素内容相匹配。