2011-08-02 93 views
3

基本上,我需要在兩個span標記之間獲取文本,並且我嘗試了一堆不同的方法,但沒有解決方案。我也使用簡單的HTML DOM解析器(http://simplehtmldom.sourceforge.net/),所以我能做的只是一點點限制。 這裏是基本設置:使用「Simple HTML DOM」獲取兩個跨度之間的文本

<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 

任何幫助嗎?

回答

5

span元素之間的文本應該是一個DOMTextNode和同胞到span元素。如果SimpleHTMLDom跟着你應該能夠得到它DOM specs

$text = $html->find('span[class=1]', 0)->next_sibling(); 

如果不工作,請考慮使用基於libxml的更合適解析器,例如看到

+2

返回第二個跨度。猜猜我將不得不重寫我的代碼爲新的分析器。 – spykr

0

嘗試PHP Dom

$dom = new DomDocument; 
$dom->loadHtml(' 
    <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 
'); 

$xpath = new DomXpath($dom); 
foreach ($xpath->query('//body/text()') as $textNode) { 
    echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET ' 
} 
+0

你可能想一些解釋增加,由於XPath是不明顯的,當你不知道是什麼loadHTML對HTML片段起作用。 – Gordon

+0

@戈登你可能是對的,但似乎這個話題已關閉。 ;) – Yoshi

0

查找( '文本',$指數)

這會給你的文本塊。

試試這個:

輸出:

TEXT I NEED TO GET 

DEMO

相關問題