我有一个XML FIle,如下所示--
<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值&然后尝试使用父语法访问root,例如,
/ROOT/account/row/field@name='ID‘和text()="7650987"/parent::*
上面的表达式返回为空白。
我怎么换一样的?
发布于 2018-04-24 00:02:40
首先,XML根标记没有关闭。您的XML应该以</ROOT>结束。在修复格式错误的之前,任何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测试器中测试了它并进行了工作。
发布于 2018-04-23 21:31:28
尝试结束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>
</ROOT>发布于 2018-04-23 21:57:44
这个XPath,
/ROOT/account[row/field[@name="ID"]="7650987"]/@code将返回account元素的account属性,该元素具有一个row/field元素,其@name属性值为"ID",字符串值为"7650987"。
https://stackoverflow.com/questions/49990240
复制相似问题