首页 > 解决方案 > XPath 使用提供的下节点值获取上节点值

问题描述

我有节点值,其中以下 2 个元素之间的 SData 事件不同,并且在仅提供 FormData“PEMD”和 ItemData“2019-12-18”时需要返回事件值“WK1”我无法提供主题值作为这将不知道,只有 ItemData 值。

<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>

我努力了

/Data/Data1/Data2/SData[@Event]/FormData[@Form='PEMD']

标签: xmlxpath

解决方案


这个 XPath,

//SData[FormData[@Form="PEMD"]/ItemData[@Item="DATE"]/@Value="2019-12-18"]/@Event

将按要求返回Event="WK1"属性。


推荐阅读