如何创建条件Xpath语句?

时间:2011-10-11 11:27:40

标签: xml xpath selectnodes

我想选择带条件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值。

2 个答案:

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