2013-09-25 2 views
5

Учитывая XML, который выглядит примерно такКак выбрать все дочерние узлы, кроме текстовых узлов?

<FirstChild Orientation="Vertical"> 
    <SecondChild>Some text</SecondChild> 
</FirstChild> 

и связь, которая использует

XPath="child::node()" 

я получаю вывод, который выглядит, как этот

enter image description here

Я не хочу текст должен появиться в дереве

Я попытался с помощью not как

XPath="child::node()[not(text())]" 

, а также множество вариаций, но не смогли прибить его.

Кто-нибудь знает, как выбрать все узлы кроме текстовые узлы?

BTW, я не хочу исключать комментарии, только текст.

ответ

10

Ваше выражение XPath исключает все дочерние узлы, которые содержат текстовый узел.

child::node()[not(text())] 

Исключить узлы, которые являются текстовый узел себя:

child::node()[not(self::text())] 
+0

Красивая, благодаря Jens! –

Смежные вопросы