Xml XPath使用提供的较低节点值获取较高节点值
我有以下两个元素之间SData事件不同的节点值,当仅提供FormData“PEMD”和ItemData“2019-12-18”时,需要返回事件值“WK1” 我不能提供主题值,因为这将是未知的,只有ItemData值Xml XPath使用提供的较低节点值获取较高节点值,xml,xpath,Xml,Xpath,我有以下两个元素之间SData事件不同的节点值,当仅提供FormData“PEMD”和ItemData“2019-12-18”时,需要返回事件值“WK1” 我不能提供主题值,因为这将是未知的,只有ItemData值 <Data> <Data1 Study="R1979" MetaDataVersionOID="6713"> <Data2 Subject="4100"> <SData Event="SCN" key="WK1[1]"
<Data>
<Data1 Study="R1979" MetaDataVersionOID="6713">
<Data2 Subject="4100">
<SData Event="SCN" key="WK1[1]">
<FormData Form="PEMD" FormKey="1">
<ItemData Item="PM" Value="1"/>
<ItemData Item="PE" Value="1"/>
<ItemData Item="DATE" Value="2020-01-01"/>
</FormData>
</SData>
</Data2>
</Data1>
<Data1 Study="R1979" MetaDataVersionOID="6713">
<Data2 Subject="4200">
<SData Event="WK1" key="WK1[1]">
<FormData Form="PEMD" Formkey="1">
<ItemData Item="PM" Value="1"/>
<ItemData Item="PE" Value="1"/>
<ItemData Item="DATE" Value="2019-12-18"/>
</FormData>
</SData>
</Data2>
</Data1>
这个XPath
//SData[FormData[@Form="PEMD"]/ItemData[@Item="DATE"]/@Value="2019-12-18"]/@Event
将根据请求返回Event=“WK1”
属性。备选方案:
//FormData[@Form="PEMD"][./ItemData[@Value="2019-12-18"]]/../@Event
查找具有特定属性(属性:PEMD
)的FormData
元素和特定的ItemData
子元素(属性:2019-12-18
)。然后获取父元素(。
)的属性(@Event
)
输出:WK1
//FormData[@Form="PEMD"][./ItemData[@Value="2019-12-18"]]/../@Event