php DomDocument: как я могу напечатать атрибут элемента? - PullRequest
1 голос
/ 10 июля 2010

как мне распечатать атрибут элемента?

пример:

$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 ?
}

Ответы [ 2 ]

1 голос
/ 10 июля 2010

DOMXPath 's query функция возвращает 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");
     }
}
1 голос
/ 10 июля 2010

использовать DOMElement :: getAttribute

$art->getAttribute('class');

также simpleHTMLDOM больше подходит для работы с html:

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