2012-09-27 42 views
1

元素的PHP的DOMDocument值我有一個DOMDocument它看起來像這樣:無子元素

<font size="6" face="Arial"> 
CONTENT 
    <font size="5" face="Arial">...</font> 
    <br> 
    <table cellspacing="1" cellpadding="1" border="3" bgcolor="#E7E7E7" rules="all">...</table> 
    <table cellspacing="1" cellpadding="1">...</table> 
    <font size="3" face="Arial" color="#000000">...</font> 
</font> 

現在我想要得到的只是內容,而不是所有的其他子元素。

我該怎麼做?

+0

IIRC,在有效的HTML中,您不能在''內嵌套'

'。 – nickb

+0

你如何獲得Domdocument ???試圖在服務器端或客戶端獲得結果... – Surace

+0

可能是,代碼是由第三方程序生成的,我得解析它。 – Zulakis

回答

0

短:

$output = $xml->getElementsByTagName("font")->item(1)firstChild->textContent; 

nickb的解決方案工作過,是即使內容來更好子之一後,孩子的。但是由於在我的情況下它不這樣做,所以這個更短。

3

你可以做的是抓住第一個DOMText節點,這是第一個<font>標籤的子節點。

// Get the first <font> tag 
$font = $doc->getElementsByTagName('font')->item(0); 

// Find the first DOMText element 
$first_text = null; 
foreach($font->childNodes as $child) { 
    if($child->nodeType === XML_TEXT_NODE) { 
     $first_text = $child; 
     break; 
    } 
} 

if($first_text != null) { 
    echo 'OUTPUT: ' . $first_text->textContent; 
} 

您可以從the demo看到這個打印:

OUTPUT: CONTENT