Xml Xpath同级条件测试?
我正在使用VB.net(2003),并对xml文档调用SelectNodes方法。Xml Xpath同级条件测试?,xml,xpath,Xml,Xpath,我正在使用VB.net(2003),并对xml文档调用SelectNodes方法。 如果我有文件: <InqRs> <DetRs> <RefInfo> <RefType>StopNum</RefType> <RefId>0</RefId> </RefInfo> <RefInfo> <RefTy
如果我有文件:
<InqRs>
<DetRs>
<RefInfo>
<RefType>StopNum</RefType>
<RefId>0</RefId>
</RefInfo>
<RefInfo>
<RefType>Id</RefType>
<RefId>0</RefId>
</RefInfo>
</DetRs>
<DetRs>
<RefInfo>
<RefType>StopNum</RefType>
<RefId>0</RefId>
</RefInfo>
<RefInfo>
<RefType>Id</RefType>
<RefId>1</RefId>
</RefInfo>
</DetRs>
</InqRs>
但是这些选择了两个DetRs部分(因为StopNum
我想是0的RefId) 像这样。您不需要XPath表达式中的顶级InqRs,尽管这并不有害。您可能也不关心DetRs,但假设您关心DetRs,您希望说“给我Refinfo元素的父元素,它具有以下规范”
您需要顶部元素的所有子元素:
/*/DetRs
具有RefInfo
子项的:
/*/DetRs
[RefInfo]
具有值为“Id
”的引用类型的:
/*/DetRs
[RefInfo
[
RefType
='Id
']] 它有一个
RefId
,值0:
/*/DetRs
[RefInfo
[
RefType
='Id
'
和
RefId
=0]
] 这个XPath表达式正确地选择了所提供XML文档中所需的第一个
DetRs
元素
当然,如果有人有其他风格偏好,上述表达也可以写成:
/*/DetRs[RefInfo[RefType='Id'和RefId=0]
@Mark:点击问题旁边的(白色)复选标记,您可以接受最佳答案。
InqRs/DetRs[RefInfo/RefType='Id' and RefInfo/RefId='0']
InqRs/DetRs[RefInfo/RefType='Id'][RefInfo/RefId='0']
DetRs/Refinfo[RefType='Id' and RefId='0']/..