我有这个XML,我正在尝试从它中提取序列号。
但是,序列号不在同一级别,所以我发现很难实现它,因为我使用的工具需要使用一个XPATH表达式。
<rpc-reply>
<chassis-inventory>
<chassis junos:style="inventory">
<name>Chassis</name>
<serial-number>AAABBB</serial-number>
<description>SRX220H</description>
<chassis-module>
<name>Routing Engine</name>
<version>REV 23</version>
<part-number>750-031175</part-number>
<serial-number>XXXYYY</serial-number>
<description>RE-SRX220H</description>
</chassis-module>
<chassis-module>
<name>FPC 0</name>
<description>FPC</description>
<chassis-sub-module>
<name>PIC 0</name>
<description>8x GE Base PIC</description>
</chassis-sub-module>
</chassis-module>
<chassis-module>
<name>Power Supply 0</name>
</chassis-module>
</chassis>
</chassis-inventory>
<cli>
<banner></banner>
</cli>
</rpc-reply>我希望提取的数据是:
<name>Chassis</name>
<serial-number>AAABBB</serial-number>
<name>Routing Engine</name>
<serial-number>XXXYYY</serial-number>有什么想法吗?
致以亲切的问候,
帕特里克
发布于 2017-06-17 18:32:33
尝试使用以下XPath表达式获取所需的输出:
//chassis-module[1]//preceding::*[name()=("name", "serial-number")]发布于 2017-06-22 01:16:08
我们最终像这样“解决”了它。不确定这是否是纯XPath,但它起作用了:
/rpc-reply//chassis | /rpc-reply//chassis-module感谢你为我破解我写得不好的XPath问题所做的一切努力!
/Patrik
https://stackoverflow.com/questions/44603230
复制相似问题