PHP DOM: получить Nodevalue без дочерних узлов - PullRequest
3 голосов
/ 15 ноября 2010

Я использую функцию php dom nodeValue, чтобы извлечь текст содержимого. Но он также возвращает значения потомков:

<example>
<inhalt>123<more>45</more></inhalt>
</example>

возврат для inhalt 12345 и 123, как я предпочитаю. Я знаю, что нет смысла и не очень хорошо иметь текст внутри inhalt, но как мне проверить, что в inhalt нет текста, подобного hasNodeValue?

1 Ответ

3 голосов
/ 15 ноября 2010

Как упоминал Фил, текст также организован в узлах.Поэтому у вашего узла inhalt есть два дочерних элемента: текстовый узел ("123") и узел элемента с именем more , который также имеет текстовый узел ("45").

Если вы просто хотите узнать, есть ли текст перед элементом more , проверьте, существует ли хотя бы один элемент, а затем проверьте, является ли первый элемент текстом (должно быть DOMText , насколько я помню).

Если вы хотите знать, есть ли хотя бы один элемент "в корне", выполните итерацию по всем дочерним элементам и проведите одинаковые тесты.

http://www.php.net/manual/en/class.domtext.php

...