PHP DOMParser帮助

时间:2010-02-22 05:29:45

标签: php dom parsing

正如我之前的一个问题所建议的那样,我正在使用PHP Simple HTML DOM Parser 作为一种搜索HTML文档并从特定元素(在我的例子中是textarea)中获取内容的方法。我想知道是否有人曾经使用过这个,并能够给我任何关于我的问题的建议(或推荐另一种解决方案)。我正在使用的代码如下所示:

include "../simple_html_dom.php";
$html     = file_get_html('http://example.com');
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea->outertext;

echo $contents;

我的问题是脚本运行代码并且不从元素中检索数据(看起来像这样:

<textarea id="body" name="body" rows="12" cols="75" tabindex="3">
At 2/21/10 10:15 PM, You wrote
: Hello world,
: how are you today?

</textarea>

我很抱歉用这种方法征求意见,但如果有人有任何建议,我将不胜感激。非常感谢你提前

2 个答案:

答案 0 :(得分:0)

正如您在documentation find中看到的那样,返回一个数组,因此对于初学者而言,您不应将其视为节点。此外,您想要的是innertext而不是outertext

这应该有效:

include "../simple_html_dom.php";
$html     = file_get_html('http://example.com');
$textarea = $html->find('textarea[id=body]'); 
$contents = $textarea[0]->innertext;

echo $contents;

答案 1 :(得分:0)

您关联的网页说明如下:

// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]'); 

这告诉我$ret将是一个集合。从语法上讲,您使用的是与CSS attribute selectors类似的内容。由于这个语法应该被推广到适用于任何属性,因此不考虑id应该是唯一的这一事实并且返回一个集合...我怀疑如果你尝试过类似的东西... < / p>

$ret = $html->find('div#foo'); 

......它可能有用。