我正在使用 Symfony 2.8 和 DomCrawler 解析网站,但在data
从 HTML 实体读取属性时遇到问题。它可能与data
属性的特定约定一样简单,但我无法在 Web 上找到任何讨论如何通过 DomCrawler 检索数据属性的参考或示例。
以下是详细信息:
我在我正在解析的 HTML 中遇到了这个构造的一个实例(来自另一个网站,所以我不能修改这个 HTML):
<div class='slideshowclass' id='slideshow'>
<div data-thumb='http://www.example.com/thumbs/1.jpg'
data-src='http://www.example.com/thumbs/1.jpg'></div>
<div data-thumb='http://www.example.com/thumbs/2.jpg'
data-src='http://www.example.com/thumbs/2.jpg'></div>
<div data-thumb='http://www.example.com/thumbs/3.jpg'
data-src='http://www.example.com/thumbs/3.jpg'></div>
<div data-thumb='http://www.example.com/thumbs/4.jpg'
data-src='http://www.example.com/thumbs/4.jpg'></div>
<div data-thumb='http://www.example.com/thumbs/5.jpg'
data-src='http://www.example.com/thumbs/5.jpg'></div>
<div data-thumb='http://www.example.com/thumbs/6.jpg'
data-src='http://www.example.com/6.jpg'></div>
</div>
我正在使用此代码搜索div
's 块并返回data-src
值:
function getList( Crawler $pWebDoc ) {
$list = $pWebDoc->filter( 'div#slideshow');
if ( !$list )
return null;
$retlist = null;
$x = $list->count();
if ( $x > 0 ) {
/* @var $item Crawler */
$retlist = $list->children()->each( function (Crawler $item, $i ) {
return ( "$i:" . $item->attr( 'data-src' ));
});
}
return ( $retlist );
}
从 DomCrawler 文档中,我希望该attr
函数返回data-src
属性值,但它返回 null;我的函数的返回是一个由 6 个元素组成的数组,只有数字而不是附加文本。
在此先感谢您的帮助。