2010-07-10 62 views
1

如何打印元素的属性?PHP DomDocument:如何打印元素的属性?

例如:

$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

使用DOMElement::getAttribute

也,simpleHTMLDOM更适合用于处理HTML:

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

不在乎为什么SimpleHtmlDom比DOM更“适合”处理HTML? DOM处理HTML罚款。 – Gordon 2010-07-10 17:56:09

1

DOMXPathquery函数返回一个DOMNodeList哪个(我敢肯定)不能用于foreach($ARRAY)循环[编辑:可以]您必须执行修改的for循环才能读取列表类中的DOMNode元素:[编辑:不必要;看下面]

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"); 
    } 
} 
+0

感谢您的信息。只是所以你会知道,它支持foreach :) – ufk 2010-07-10 19:04:03

+2

'class [ class DOMNodeList]'这意味着它可以在'foreach'构造中使用 – Gordon 2010-07-10 19:19:15

+0

@ufk,@Gordon:谢谢,我没有我不知道。 – amphetamachine 2010-07-11 03:58:10