按属性从标签中获取内容



我需要从标签名称a命名为data-copyatribute中获取内容。

这是目前为止我得到的非工作代码…

libxml_use_internal_errors(true);
$html=file_get_contents('https://mypage.com/');
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach(
$dom->getElementsByTagName('a') as $thetag){


if($thetag->getAttribute('a')=="data-copy"){echo "<h6>".$thetag->nodeValue."</h6>";}
}

要检查一个属性是否存在,你需要用它的名字来定位它

$thetag->hasAttribute('data-copy')

要获得data-copy的内容,可以像

这样比较
// <a data-copy="valueoftheattribute">
$thetag->getAttribute('data-copy') === 'valueoftheattribute'

您还可以使用XPath根据data-copy属性的存在或其他更复杂的标准直接查找节点,而无需像这样使用hasAttributegetAttribute:

$file='https://mypage.com/';
libxml_use_internal_errors( true );
$html=file_get_contents( $file );
$dom=new DOMDocument;
$dom->strictErrorChecking=false;
$dom->validateOnParse=false;
$dom->recover=true;
$dom->loadHTML( $html );
libxml_clear_errors();
$xp=new DOMXPath( $dom );
$expr='//a[@data-copy]'; # find `a` nodes anywhere in the source document that simply have the data-copy attribute

# run the query
$col=$xp->query( $expr );
# iterate through any found nodes and display the content
if( $col && $col->length > 0 ){
foreach( $col as $i => $node )printf('<div>[%d] - %s</div>', $i, $node->nodeValue );
}

相关内容

  • 没有找到相关文章

最新更新