Php DOMElement için DOMNode

2 Cevap php

Ben alt öğe getElementsByTagName gibi yöntemler erişmek için bir DOMElement için getElementsByTagName için bir çağrı bir DOMNode nesneyi dönüştürmek istiyorum. Başka bir dilde, ben döküm olacak ve kolay olurdu, ama bazı hızlı baktıktan sonra, PHP nesne döküm yok. Yani ne bilmeniz gereken DOMNode nesneden bir DOMElement nesnesi nasıl olduğunu.

Teşekkürler.

2 Cevap

Sen bir şey döküm gerekmez, sadece yöntemini çağırın:

$links = $dom->getElementsByTagName('a');

foreach ($links as $link) {
    $spans = $link->getElementsByTagName('span');
}

Ve arada, DOMElement DOMNode bir alt sınıfıdır. Bir DOMNodeList hakkında konuşuyor olsaydı, o zaman böyle bir listede öğeleri erişim yapılabilir, yöntem, bir foreach döngüsü ile, yukarıda sunulan ya DOMNodeList yöntemi) (öğesini kullanarak ya olacak

$link_0 = $dom->getElementsByTagName('a')->item(0);

Sen DOMNode nesne XML_ELEMENT_NODE bir nodeType varsa sadece kontrol, herhangi bir açık isleminden yapmak gerekmez.

PHP ile bu mükemmel mutlu olacaktır.

Kodunuzu kontrol etmek için PHPLint kullanırsanız PHPLint bir DOMNode nesne üzerinde getElementsByTagName kullanma hakkında şikayet olduğunu göreceksiniz. Bu etrafında almak için aşağıdaki çember üzerinden atlamak gerekiyor:

/*.object.*/ $obj = $node;
$element = /*.(DOMElement).*/ $obj;

Sonra PHPLint gelen doğru türü ve hiçbir şikayetleri $ unsur değişken olacaktır.