0

为什么 nodename 打印“root”,但 nodeValue 返回多个子节点中的所有值。

运行此代码,回显将返回

"父节点的名字是root 它的值是Text value 11111 Empty text value 2222 space text value 3333 "

第二个回声将返回这个

"子节点为空格,其值为空格文本值3333"

<?php

$xmldoc=
    '<?xml version="1.0" ?><root>

<text>Text value 11111</text>
<none/>
<empty>Empty text value 2222</empty>
<space>space text value 3333 </space>
</root>';

$domdoc = new DoMDocument();
$domdoc->loadXML($xmldoc);

$xpath = new DOMXPath($domdoc);

$rootNodeListParent = $xpath->query("//root");
$rootNodeParent = $rootNodeListParent[0];
echo "The Name of the parent node is " . $rootNodeParent->nodeName. " Its value is " . $rootNodeParent->nodeValue . "<br>";

$queryNodeList = $xpath->query("//space");
$nodeSpace = $queryNodeList[0];
 echo "The child node is " . $nodeSpace->nodeName. "Its value is " . $nodeSpace->nodeValue; //spacevalue ssddd
}
4

1 回答 1

0

“nodeValue 返回多个子节点中的所有值”

因为那是你在. $rootNodeParent->nodeValue .那里所要求的。

根节点的字符串值是根节点的所有文本节点后代的字符串值按文档顺序串联而成。

“对于每种类型的节点,都有一种方法可以确定该类型节点的字符串值。对于某些类型的节点,字符串值是节点的一部分;对于其他类型的节点,字符串值是根据后代节点的字符串值计算的。”

参考https://www.w3.org/TR/1999/REC-xpath-19991116/#data-model

于 2018-05-02T19:24:18.793 回答