#xml #xpath #selectnodes
#xml #xpath #selectnodes
Вопрос:
Я хочу выбрать xml-узел с условным Xpath, например-
xmlnode.SelectSingleNode("if (ns:substanceAdministration/ns:consumable/@typeCode == UNK) then evaluateThisXpath else evaluateOtherXpath")
меня беспокоит-
<drugID code="UNK">
<sub code="2232" />
</drugID>
Если @code родительского узла является UNK, то только он должен принимать значение @code дочернего узла, в противном случае принимать родительское значение @code .
Ответ №1:
Это должно сработать:
(drugID[@code='UNK']/sub)|(drugID[@code<>'UNK')
Это псевдокод Xpath, измените его на язык вашей библиотеки
Ответ №2:
Используйте:
drugId[@code = 'UNK']/sub/@code | drugId/@code[not(. = 'UNK')]
что может быть «сокращено»:
(drugId[@code = 'UNK']/sub | drugId[not(@code = 'UNK')])/@code