2013-03-29 233 views

回答

3

使用firstChild

$foo->firstChild->textContent; 
+0

一个“文本节点” <bar>之前的DOMNodefirstChild属性返回DOMText对象怎么办如果在''之后有文字?这也会得到那些文字吗? – jonhopkins

+0

不,但您可以使用'lastChild'来代替。更好的方法是将文本包装到一个元素中。 – zessx

5

这可能会有帮助。使用我发现herehere

$txt = ""; 
foreach($foo->childNodes as $node) { 
    if ($node->nodeType == XML_TEXT_NODE) { 
     $txt .= $node->nodeValue; 
    } 
} 
+0

不知道为什么很难找到这个简单问题的实际答案。搜索了几个小时后,这个答案是迄今为止发现的最佳答案。应该是upvoted。 –

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 />'; 
} 

,因为在第一<foo>