2013-03-29 150 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>