2011-10-11 11 views
8

deseo seleccionar el nodo XML con XPath condicional como-¿Cómo crear la declaración Conditional Xpath?

xmlnode.SelectSingleNode("if (ns:substanceAdministration/ns:consumable/@typeCode == UNK) then evaluateThisXpath else evaluateOtherXpath") 

mi preocupación es-

<drugID code="UNK"> 
    <sub code="2232" /> 
</drugID> 

Si @code del nodo padre es UNK entonces sólo se debe tomar el valor de @code niño nodo; de lo contrario, tome el valor padre @code.

Respuesta

7

Esto debería hacer el truco:

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

Es Xpath pseudocódigo, cambiarlo a su idioma biblioteca

5

Uso:

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

que podría ser "abreviada" :

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