Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用分组条件从XML中获取值?_Xml_Xpath - Fatal编程技术网

如何使用分组条件从XML中获取值?

如何使用分组条件从XML中获取值?,xml,xpath,Xml,Xpath,我想通过一些条件从XML中获取属性值。我不知道这组值在XPATH条件下是如何检查的 以下是我的XML格式: <TTIDCData> <CYAccountHide HideTable="False"> <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/> <fldActNumber Value="502100" HideFie

我想通过一些条件从XML中获取属性值。我不知道这组值在XPATH条件下是如何检查的

以下是我的XML格式:

<TTIDCData>
   <CYAccountHide HideTable="False">
      <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/>
      <fldActNumber Value="502100" HideField="False" PrintValue="502100"/>
   </CYAccountHide>
   <CYAccountHide HideTable="False">
      <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/>
      <fldActNumber Value="502200" HideField="False" PrintValue="502200"/>
   </CYAccountHide>
   <CYAccountHide HideTable="False">
      <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/>
      <fldActNumber Value="502200" HideField="False" PrintValue="502200"/>
   </CYAccountHide>
   <CYAccountHide HideTable="False">
      <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/>
      <fldActNumber Value="502222" HideField="False" PrintValue="502200"/>
   </CYAccountHide>
   <person name="blair" address="502100"/>
   <person name="blair" address="502200"/>
   <person name="blair" address="502205"/>
   <person name="blair" address="502200"/>
</TTIDCData> 

我想知道哪个值不匹配。条件是
//CYAccountHide/fldActNumber/@Value!=//个人/地址

但这种情况不起作用

基本上,在我的XML中,我有一个值用于
//CYAccountHide/fldActNumber/@value
这个属性是
5021000200200201
,而
//person/@address
属性的值是
5021000200
。我想在xpath的帮助下对值进行评估,该值仅为
502201


如果只验证一个值,则//CYAccountHide/fldActNumber/@value!='502100'此条件有效,但我希望使用该XML标记验证值组。

我想我已经理解了您现在需要的内容。使用以下XPath表达式

//CYAccountHide/fldActNumber/@Value[not(. = //person/@address)]
也就是说

//CYAccountHide/fldActNumber/@Value       Select all attributes named "Value" of
                                          elements "fldActNumber" that themselves are
                                          children of "CYAccountHide" elements.
[not(. = //person/@address)]              but only return them if there is no "person"
                                          element anywhere in the document that has an
                                          "address" attribute with the same value as
                                          the "Value" attribute.
结果将是

Value="502201"

你的问题不清楚。什么是“XPATH条件中的值组检查”?显示您的预期结果(XPath表达式应该返回什么)会有所帮助。我的问题是如何通过与CYAccountHide/fldActNumber/@value这个路径和person/@address进行比较来获得不同的值。。两个路径都返回一些值,但我需要不同的(不等于)值。“显示预期结果(XPath表达式应返回的内容)会有所帮助”。502201通过XPath返回值…感谢您的澄清,请查看我的答案,并让我知道这是否是您需要的。