getElementsByTagName始终返回相同的NodeValue

时间:2018-04-19 22:42:29

标签: php getelementsbytagname

当我更改我要搜索的元素的名称时,我可以看到节点的名称发生了变化。但我一直看到节点值为" Silverbacks金色眼睛"即使我进入" 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 个答案:

答案 0 :(得分:0)

因为nodeValue包含此节点及其后代的文本内容。

根据documentation

  

的nodeValue

     

此节点的值,具体取决于其类型。与W3C规范相反,DOMElement节点的节点值等于 DOMNode :: textContent 而不是NULL。

所以,textContent的{​​{3}}:

  

的textContent

     

此节点的文本内容及其后代