我有一个XML文件,如下所示-
<ROOT>
<account name="ABC" code="XX">
<row>
<field name="ID">7650987</field>
<field name="Length">00:02:37</field>
<field name="Verif">6064625</field>
</row>
<row>
<field name="ID">7651474</field>
<field name="Length">00:01:08</field>
<field name="Verif">6065064</field>
</row>
<row>
<field name="ID">7651105</field>
<field name="Length">00:00:42</field>
<field name="Verif">6064737</field>
</row>
</account>
我需要基于Verif值提取“ code =“ XX”“。
我可以使用Xpath来获取Verif值,然后尝试使用Parent语法(例如,
/ ROOT / account / row / field [@ name ='ID'和text()=“ 7650987”] / parent :: *
上面的表达式返回空白。
我该如何更改?
首先,您的XML ROOT标记未关闭。您的XML应该以结尾</ROOT>
。在修复格式错误的xml之前,xpath无效。当您关闭它时,您尝试的解决方案将不再是空白,尽管它不是正确的::/ROOT/account/row/field[@name='ID' and text()="7650987"]/parent::*
这意味着返回“名称为“ ID”且文本为“ 7450978”的“字段”的父项”,将是一整段XML:
<row>
<field name="ID">7650987</field>
<field name="Length">00:02:37</field>
<field name="Verif">6064625</field>
</row>
现在,您需要的是:“具有子代“行/字段”,名称为“ ID”,文本为“ 7450978”的“帐户”的代码值”
可以将其翻译为:
//account[row/field/@name="ID" and row/field/text()="7650987"]/@code
我在在线XPATH测试器中对其进行了测试并可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句