【发布时间】:2012-01-13 19:06:15
【问题描述】:
我需要使用 php 从网页中提取一些数据。我感兴趣的部分的结构与此类似:
<a href="somepath" target="fruit">apple</a>
<a href="somepath" target="animal">cat</a>
<a href="somepath" target="fruit">orange</a>
<a href="somepath" target="animal">dog</a>
<a href="somepath" target="fruit">mango</a>
<a href="somepath" target="animal">monkey</a>
首先,我想提取所有水果,然后是所有动物,以便将它们很好地分组。
我想出了如何遍历所有属性值。代码如下:
$dom = new DOMDocument();
$html = file_get_contents('example.html');
@$dom->loadHTML($html);
$a = $dom->getElementsByTagName('a');
for ($i; $i < $a->length; $i++) {
$attr = $a->item($i)->getAttribute('target');
echo $attr . "\n";
}
所以我得到:
fruit animal fruit animal fruit animal
我还发现了如何获取元素的文本内容:
$a->item($i)->textContent
所以,如果包含在循环中并回显,我会得到:
apple cat orange dog mango monkey
我觉得我很接近,但我无法得到我想要的。我需要这样的东西:
if (target = "fruit") then give me "apple, orange, mango".
有人可以指点我正确的方向吗?
谢谢。
【问题讨论】: