2013-02-12 102 views
0

我有以下格式PHP HTML DOM提取標籤的文本,而不包括嵌套標籤文本

<html> 
    <body> 
     <div> 
      Hello 
      <span>world1 
      </span> 
      <span>world2 
      </span> 
      <span>world3 
      </span> 
     </div> 
     <div> 
      Hello 
      <span>world1 
      </span> 
      <span>world2 
      </span> 
      <span>world3 
      </span> 
     </div> 
    </body> 
</html> 

我需要從格中提取數據的HTML,而不包括span..and商店內的文本它在一個變量中,並提取另一個變量中每個div內第三個跨度內的文本。 即。在第一個變量中,我需要Hello。 而在第二個變量中,我需要world3。 如何做到這一點。 每個div的nodeValue屬性返回文本包括內跨越。如何避免

+0

我試圖 $ div->的getElementsByTagName(「DIV」) 和遍歷的每個DIV和取出的節點值..但它包括span標籤內的文本也....我需要避免那 – 2013-02-12 08:30:19

回答

1

遍歷div的childNodes並建立從作爲textNodes所有的childNodes的nodeValues字符串(他們有3nodeType

+0

ohh ..這很酷..爲什麼不比較nodeName? – 2013-02-12 08:36:43

+0

爲什麼不比較nodeType ^^ – 2013-02-12 08:43:15

0

我認爲你正在尋找這樣的東西。 fiddle

document.getElementsByTagName("div")[0].childNodes[0].textContent; 
document.getElementsByTagName("div")[0].childNodes[5].textContent;