Xml XPath查询-节点名称有多个元素

Xml XPath查询-节点名称有多个元素,xml,xpath,Xml,Xpath,绝对的新手,需要一个快速的答案(今晚我将对此进行研究,但现在需要一个答案)。为白痴提前道歉: 我编写了一个xpath,如下所示: sum(aaa[status='X' and code='Y']/value) 这正是我想要的。但是,aaa以以下格式存在于其他几个节点中: fff xmlns="urn:xxx.co.uk/soap:xxx" id="xxx" ggg type="1" ... title="ASDGHJAS ASHD" 为什么不: sum(fff/ggg/aaa[status

绝对的新手,需要一个快速的答案(今晚我将对此进行研究,但现在需要一个答案)。为白痴提前道歉:

我编写了一个xpath,如下所示:

sum(aaa[status='X' and code='Y']/value)
这正是我想要的。但是,aaa以以下格式存在于其他几个节点中:

fff xmlns="urn:xxx.co.uk/soap:xxx" id="xxx"

ggg type="1" ... title="ASDGHJAS ASHD"
为什么不:

sum(fff/ggg/aaa[status='X'和code='Y']/value)
work

我要怎么做才能让它看到节点fff和ggg?我无法键入全名,因为每次查询运行时,它们都不同,所以在初始名称之后的所有项都不相同

如果你能帮助一个没用的新手,谢谢

<fff xmlns="urn:xxx.co.uk/soap:xxx" id="xxx" linktype="0"> 
 <ggg type="1" title="ABC"> 
  <aaa>
   <status>X</status> 
   <code>Y</code>
   <value>15</value> 
  </aaa>
 <aaa>
  <status>Z</status> 
  <code>G</code> 
  <value>5</value> 
 </aaa>
 <aaa> 
  <status>X</status> 
  <code>Y</code> 
  <value>30</value> 
 </aaa> 
</ggg> 

您的XPath不考虑默认名称空间。请参见并为默认名称空间定义名称空间前缀。 在您的特定情况下,定义以下命名空间

x=urn:xxx.co.uk/soap:xxx
那么这个XPath,

sum(//x:aaa[x:status='X' and x:code='Y']/x:value)
将返回

45

正如所料,XPath没有考虑默认名称空间。请参见并为默认名称空间定义名称空间前缀。 在您的特定情况下,定义以下命名空间

x=urn:xxx.co.uk/soap:xxx
那么这个XPath,

sum(//x:aaa[x:status='X' and x:code='Y']/x:value)
将返回

45

不出所料

谢谢你的帮助,而不仅仅是因为我的基本知识而辱骂我。这个相关的问题很有帮助,尽管我还是有点困惑。我现在要承认失败,直到我丈夫回家。我试着自己做——尽管你们做了大部分!谢谢你的帮助,而不仅仅是因为我的基本知识而辱骂我。这个相关的问题很有帮助,尽管我还是有点困惑。我现在要承认失败,直到我丈夫回家。我试着自己做——尽管你们做了大部分!