XPath: выбор текстового узла



имея следующий XML:



<node>Text1<subnode/>text2</node>


Как выбрать первый или второй текстовый узел через XPath?



что-то вроде этого:



/node/text()[2]


конечно, не работает, потому что это объединенный результат каждого текста внутри узла.

549   2  

2 ответов:

имея следующий XML:

<node>Text1<subnode/>text2</node> 

Как выбрать первый или второй текстовый узел через XPath?

использовать:

/node/text()

при этом выбираются все дочерние элементы текстового узла верхнего элемента (с именем "узел") XML-документа.

/node/text()[1]

при этом выбирается первый дочерний текстовый узел верхнего элемента (с именем "узел") XML-документа.

/node/text()[2]

при этом выбирается второй текстовый узел дочерний элемент верхнего элемента (с именем "узел") XML-документа.

/node/text()[someInteger]

это выбирает someInteger-й текстовый узел дочернего верхнего элемента (с именем "узел") XML-документа. Это эквивалентно следующему выражению XPath:

/node/text()[position() = someInteger]

ваш xpath должен работать . я протестировал ваш xpath и мой в реализации MarkLogic и Zorba Xquery/ Xpath.

как должно работать.

/node/child::text()[1] - should return Text1
/node/child::text()[2] - should return text2


/node/text()[1] - should return Text1
/node/text()[2] - should return text2

Comments

    Ничего не найдено.