<foo>
a
<bar> b </bar>
</foo>
$foo->textContent
和$foo->nodeValue
都会返回a b
。
如何才能获得a
(来自节点的文本,没有来自任何子节点的文本)
答案 0 :(得分:7)
$txt = "";
foreach($foo->childNodes as $node) {
if ($node->nodeType == XML_TEXT_NODE) {
$txt .= $node->nodeValue;
}
}
答案 1 :(得分:3)
使用firstChild
:
$foo->firstChild->textContent;
答案 2 :(得分:3)
试试此代码
$doc = new DOMDocument();
$doc->loadXML('<root><foo>a<bar>b</bar></foo><foo>bar</foo></root>');
$foos = $doc->getElementsByTagName('foo');
foreach($foos as $v){
echo $v->firstChild->wholeText.'<br />';
}
firstChild
的{{1}}属性会返回DOMNode
个对象,因为在DOMText
中<bar>
之前有一个“文本节点”