简单的DOM Parser PHP期望CSS选择器产生一个结果

时间:2011-10-20 19:39:29

标签: php dom simple-html-dom

嘿,我的Simple DOM解析器有问题,这让我疯狂。

这样可行:

foreach($html->find('input[name=sex]') as $e)
echo $e->value;

即使只有1个结果。

然而,这不起作用:

echo $html->find('input[name=sex]')->value;

我不想真正使用foreach因为我只期望1个结果。 那么有人可以帮我解决第二块代码吗?

干杯

3 个答案:

答案 0 :(得分:4)

According to the docs,第二个参数是您要查找的索引。将其设置为0以返回第一个( 0th )元素而不是对象数组:

  

通过CSS选择器查找元素。如果设置了index,则返回第N个元素对象,否则返回一个object数组。

$html->find('input[name=sex]', 0)->value;

答案 1 :(得分:0)

$html->find('input[name=sex]')[0]->value;

似乎find返回一个数组,所以使用索引可以帮助你。

使用上面的代码。

答案 2 :(得分:0)

如果你可以在某些东西上使用for-each,那么即使有一个元素,它也是一个数组/集合。您要求回显整个数组,可能需要print_r。正如另一张海报建议的那样,使用下标。