getElementsByTagName всегда возвращает один и тот же NodeValue

Я вижу, как меняется имя узла, когда меняю имя элемента, который ищу. Но я продолжаю видеть значение узла как «Silverbacks Golden eyes», даже если я ввожу «root» в качестве элемента, который я ищу. Это почему?

<?php

$xmlString = <<<XML
<root>
<teams>
<team>Silverbacks</team>
<team foo="winner">Golden eyes </team>
</teams>
</root>
XML;

$dom = new DOMDocument();
$dom->loadXML($xmlString);
$teams = $dom->getElementsByTagName("root");
foreach($teams as $team){
echo $team->nodeName . " and the value of the node is " .$team->nodeValue . "\n"; //always return Silverbacks Golden eyes

}
?>

1

Решение

Так как nodeValue содержит текстовое содержимое этого узла и его потомков.

Согласно документация,

nodeValue

Значение этого узла в зависимости от его типа. В отличие от спецификации W3C, значение узла для узлов DOMElement равно DOMNode :: TextContent вместо NULL.

Итак документация из textContent:

TextContent

Текстовое содержимое этого узла и его потомки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]