Я хочу выбрать узлы, для которых не существует определенного атрибута. Я пробовал функцию Not(), но она не работает. Есть ли способ для этого?
Пример: следующий запрос Xpath:
group/msg[not(@owner)]
Должен получить первый узел, но не второй. Однако и SketchPath (инструмент для тестирования запросов Xpath), и мой код C# считают, что 2 узла в порядке.
<group>
<msg id="EVENTDATA_CCFLOADED_XMLCONTEXT" numericId="14026" translate="False" topicId="302" status="translated" >
<text>Context</text>
<comment></comment>
</msg>
<msg id="EVENTDATA_CCFLOADED_XMLCONTEXT_HELP" numericId="14027" translate="False" topicId="302" status="translated" owner="EVENTDATA_CCFLOADED_XMLCONTEXT" >
<text>Provides the new data displayed in the Object.</text>
<comment></comment>
</msg>
</group>
На самом деле функция Not() работает корректно, просто у меня были другие условия и не правильно расставлены скобки. ошибка человека.
group/msg[not(@owner) or @otherAttribute="true"]
у вас не работает? - person CARLOS LOTH   schedule 18.03.2012