Как я возвращаюсь '' для текста пустого узла () в XPath?

<td></td><td>foo</td>

Я хотел бы возвратиться ['', 'foo'] но xpath libxml //td/text() возвраты просто ['foo']. Как я нахожу пустой тег как '' вместо (не подобранный)?

10
задан joeforker 10 March 2010 в 21:23
поделиться

2 ответа

Пока вы выбираете текстовые узлы специально, вы не можете. Потому что в первом просто нет текстового узла.

Когда вы меняете выражение XPath на '// td' , вы получаете два узла . Используйте их текстовое значение в дальнейшей обработке.

6
ответ дан 3 December 2019 в 23:12
поделиться

Хотя @Tomalak совершенно прав, в XPath 2.0 можно использовать :

// td / string (.)

, и это создает последовательность строк, каждая из которых содержит строковое значение соответствующего элемента td .

Итак, в вашем случае результат будет желаемым:

"", "foo"

8
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: