php DomDocument: how can i print an attribute of an element?

◇◆丶佛笑我妖孽 提交于 2019-12-11 09:57:33

问题


how do I print the an attribute of an element?

example:

$doc = new DOMDocument();
@$doc->loadHTML($page);
$xpath = new DOMXPath($doc);
$arts= $xpath->query("/td");

foreach ($arts as $art) {
  here i wanna print the attribute class of the td element, how do i do so ?
}

回答1:


use DOMElement::getAttribute

$art->getAttribute('class');

also, simpleHTMLDOM is more suitable for dealing with html:

$html = str_get_html($page);
foreach($html->find('td') as $element) 
   echo $element->class.'<br>';
}



回答2:


DOMXPath's query function returns a DOMNodeList, which (I'm pretty sure) cannot be used in a foreach($ARRAY) loop [Edit: it can]. You'll have to implement a modified for loop in order to read the DOMNode elements inside the list class: [Edit: not necessary; see below]

foreach ($arts as $art) {
     # code-hardiness checking
     if ($art && $art->hasAttributes()) {
         # (note: chaining will only work in PHP 5+)
         $class = $art->attributes->getNamedItem('class');
         print($class . "\n");
     }
}


来源:https://stackoverflow.com/questions/3220076/php-domdocument-how-can-i-print-an-attribute-of-an-element

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!