8

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

4

2 回答 2

9

这应该可以解决问题:

(drugID[@code='UNK']/sub)|(drugID[@code<>'UNK')

它是 Xpath 伪代码,将其更改为您的库语言

于 2011-10-11T11:35:27.583 回答
5

使用

drugId[@code = 'UNK']/sub/@code | drugId/@code[not(. = 'UNK')]

可以“缩写”:

(drugId[@code = 'UNK']/sub | drugId[not(@code = 'UNK')])/@code
于 2011-10-11T14:37:27.943 回答