我想选择带条件Xpath的xml节点,如 -
xmlnode.SelectSingleNode("if (ns:substanceAdministration/ns:consumable/@typeCode == UNK) then evaluateThisXpath else evaluateOtherXpath")
我担心的是 -
<drugID code="UNK">
<sub code="2232" />
</drugID>
如果父节点的@code是UNK,那么只有它应该取用子节点的@code值,否则取父@code值。
答案 0 :(得分:8)
这应该可以解决问题:
(drugID[@code='UNK']/sub)|(drugID[@code<>'UNK')
是Xpath伪代码,将其更改为您的库语言
答案 1 :(得分:5)
使用强>:
drugId[@code = 'UNK']/sub/@code | drugId/@code[not(. = 'UNK')]
可以是“缩写”:
(drugId[@code = 'UNK']/sub | drugId[not(@code = 'UNK')])/@code