【发布时间】:2020-05-19 15:49:48
【问题描述】:
我需要通过索引为那些匹配 '"Ref Location="C1"' AND '"EventData ID="W12"' 获取 'ItemKey="X"' 值。如果您注意到,所有四个都有“Ref Location="C1",但只有最后 3 个有'"EventData ID="W12"'
<Object>
<Level1>
<Level2>
<Ref Location="C1"/>
<EventData ID="W6" EventKey="1">
<FormData ID="NL">
<ItemData ItemID="LINE" ItemKey="1">...</ItemData>
</FormData>
</EventData>
</Level2>
</Level1>
<Level1>
<Level2>
<Ref Location="C1"/>
<EventData ID="W12" EventKey="1">
<FormData ID="NL">
<ItemData ItemID="LINE" ItemKey="1">...</ItemData>
</FormData>
</EventData>
</Level2>
</Level1>
<Level1>
<Level2>
<Ref Location="C1"/>
<EventData ID="W12" EventKey="1">
<FormData ID="NL">
<ItemData ItemID="LINE" ItemKey="2">...</ItemData>
</FormData>
</EventData>
</Level2>
</Level1>
<Level1>
<Level2>
<Ref Location="C1"/>
<EventData ID="W12" EventKey="1">
<FormData ID="NL">
<ItemData ItemID="LINE" ItemKey="3">...</ItemData>
</FormData>
</EventData>
</Level2>
</Level1>
目前我有
(/Object/Level1/Level2/Ref[@Location='C1'])[2]/../EventData[@ID='W12']/FormData/ItemData/@ItemKey
其中 X 是索引,但它为所有“C1”节点获取 ItemKey="X"。我只需要为 ID="W12" 节点获取 ItemKey="X"。
当路径包含 '[X]' 时的期望结果
[1] -> ItemKey="1" // ID = "W12"
[2] -> ItemKey="2" // ID = "W12"
[3] -> ItemKey="3" // ID = "W12"
【问题讨论】: