2010-07-10 54 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