2010-02-24 28 views
7

Làm cách nào để lấy tất cả thuộc tính của phần tử? Giống như ví dụ của tôi dưới đây tôi chỉ có thể nhận được một tại một thời điểm, tôi muốn kéo ra tất cả các thuộc tính của thẻ neo.PHP: DomElement-> getAttribute

$dom = new DOMDocument(); 
@$dom->loadHTML(http://www.example.com); 

$a = $dom->getElementsByTagName("a"); 
echo $a->getAttribute('href'); 

cảm ơn!

Trả lời

8

"Inspired" bởi câu trả lời của Simon. Tôi nghĩ rằng bạn có thể cắt cuộc gọi getAttribute, vì vậy, đây là giải pháp không có:

$attrs = array(); 
for ($i = 0; $i < $a->attributes->length; ++$i) { 
    $node = $a->attributes->item($i); 
    $attrs[$node->nodeName] = $node->nodeValue; 
} 
var_dump($attrs); 
+7

Tôi cảm thấy bị cướp của câu trả lời được chấp nhận :) Mặc dù tốt. – Simon

10
$length = $a->attributes->length; 
$attrs = array(); 
for ($i = 0; $i < $length; ++$i) { 
    $name = $a->attributes->item($i)->name; 
    $value = $a->getAttribute($name); 

    $attrs[$name] = $value; 
} 


print_r($attrs); 
1
$a = $dom->getElementsByTagName("a"); 
foreach($a as $element) 
{ 
    echo $element->getAttribute('href'); 
} 
+0

Nếu tôi đọc câu hỏi đúng, anh ấy muốn tất cả thuộc tính của phần tử. Không phải một attrbiute từ tất cả các yếu tố. – Simon

+0

oops ... Bạn nói đúng, xấu của tôi. – a1ex07