2012-05-17 58 views
1

假設我有一個包含以下HTML一個dom_document,它被放在一個叫$dom_documentDOM文檔 - 如何獲取標籤內的文本沒有內標籤

<div> 
    <a href='something'>some text here</a> 
    I want this 
</div> 

我想什麼變量是檢索位於div標籤('我想要這個')內的文本,但不是a標籤。我所做的是以下幾點:

$dom_document->nodeValue; 

不幸的是,在這個聲明中我有一個標籤。希望有人能幫忙。先謝謝你。乾杯。馬克

+0

我還沒有嘗試過自己(所以不是答案的評論),但我懷疑你想抓住元素的子文本節點。如果你迭代孩子並且只抓取那些TEXTNODE類型的,你應該可以抓住它。 – GordonM

+0

你可以運行'strip_tags($ dom_document-> nodeValue)'這將給'我想要的這個'一些文本'。如果你想完全刪除標籤和它的文本,我想,一個正則表達式會被使用。 –

回答

1

您可以使用XPath吧:

$xpath = new DOMXpath($dom_document); 
$textNodes = $xpath->query('//div/text()'); 

foreach ($textNodes as $txt) { 
    echo $txt->nodeValue; 
} 
+0

我已經使用xpath。但是我的查詢的結果包含一個包含多個元素的structutre和一些不在任何元素中的文本。我需要的文字。所以我正在尋找像nodeText(不幸的是不存在...) – Marc

+0

@marc我可以改善答案,但我不知道如何:) –

+0

其實你可以用任何節點的xpath作爲起點。那是你的追求? –