我有这个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>
有什么想法吗?
亲切的问候,
帕特里克
答案 0 :(得分:1)
尝试使用下面的XPath
表达式来获取所需的输出:
//chassis-module[1]//preceding::*[name()=("name", "serial-number")]
答案 1 :(得分:0)
我们最终解决了#34;就像这样。不确定这是否是纯XPath,但它有效:
/rpc-reply//chassis | /rpc-reply//chassis-module
感谢所有破译我写得不好的XPath问题的尝试!
/帕特里克