php - 解析html doc但是比较文本内容的问题

时间:2013-12-11 11:13:55

标签: php

我正在使用PHP来检索文档并在HTML中查找一些数据。

我使用了Tidy clean并修复,因为该文档包含许多错误的HTML。

反正

在html文档中有一个标记:

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

如果文本内容(链接12345)与某个字符串匹配,我想获取属性(www.google.com)的值。

$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'(当调用&gt; textContent时)。但即使打印出Link 12345,比较总是会失败。我怀疑编码存在一些问题,但我无法修复它。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用PHP的 DOMXPath 对DOM对象执行XPath查询。

我相信,对你而言,这将是

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

将返回所有人的文字是“Link 12345”。

答案 1 :(得分:0)

一个简单的错误:你正在测试“$ h2-&gt; item($ i2) - &gt; textContent”而不是“$ h2-&gt; textContent”

不是吗?