Я вижу, как меняется имя узла, когда меняю имя элемента, который ищу. Но я продолжаю видеть значение узла как «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
}
?>
Так как nodeValue
содержит текстовое содержимое этого узла и его потомков.
Согласно документация,
nodeValue
Значение этого узла в зависимости от его типа. В отличие от спецификации W3C, значение узла для узлов DOMElement равно DOMNode :: TextContent вместо NULL.
Итак документация из textContent
:
TextContent
Текстовое содержимое этого узла и его потомки.
Других решений пока нет …