2013-12-11 53 views
-1

我使用PHP檢索文檔並在HTML中查找一些數據。php - 解析html文檔,但與比較文本內容的問題

我已經使用Tidy清理和修復,因爲該文件包含大量的錯誤的HTML。

反正

在html文件有一個標籤,如:

<a href="www.google.com">Link 12345</a> 

我想要得到的屬性(www.google.com),如果文本內容(鏈接12345的值)匹配某個字符串。

$h2 = $doc->getElementsByTagName('a'); 

for ($i2; $i2 < $h2->length; $i2++) { 
    $attr2 = $h2->item($i2)->getAttribute('href'); 



    if ($h2->item($i2)->textContent == "Link 12345") 
     print "FOUND"; 
} 

這看起來不起作用。我知道for循環在某個時候返回'Link 12345'(當 - > textContent被調用時)。但即使鏈接12345出現,但比較始終會失敗。我懷疑編碼存在一些問題,但我無法修復它。

謝謝。

+0

你沒有使用PHP的[foreach](http://www.php.net/manual/en/control-structures.foreach.php)循環的具體原因? –

+0

不是。我只是使用我在網上找到的代碼。 – user3083672

+3

這個問題似乎是脫離主題,因爲「解決我找到的代碼」對未來的訪問者沒有用。 –

回答

1

您可以使用PHP的DOMXPath對您的DOM對象執行XPath查詢。

我相信爲你這將是

//a[text()="Link 12345"] 

將返回所有在誰的文字是「鏈接12345」。

+0

這似乎並不奏效。沒有找到結果。 – user3083672

+0

@ user3083672:那麼你的文本不是你認爲的那樣。 –

0

一個簡單的錯誤:您正在測試 「$ H2->項目($ 3-12) - >的textContent」 而不是 「$ H2->的textContent」

難道不是嗎?