Php DOMNodeList nesnenin verileri görüntülemek için nasıl

4 Cevap php

php dizi test etmek istediğimde aşağıdaki kodu kullanabilirsiniz

    print_r($myarray);

but know I want to see the data of an object my object is

    $xpath = new DOMXPath($doc);
    $myobject = $xpath->query('//*[ancestor-or-self::a]');

Ben kullandığınızda

    print_r($myobject);

Ben çıktı almak

    DOMNodeList Object ( )

Benim sorgu sonucunu test etmek için bu nesnenin değerleri arasında yineleme yapmak istiyorsanız?

4 Cevap

DOMNodeList ilginç bir nesne, sen print_r veya var_dump kullanarak çok bilgi almazsınız biridir.

Bir DOMNodeList nesnenin verilerini görüntülemek için birçok yol vardır. İşte bir örnek:

$xpath = new DOMXpath($dom);
$dom_node_list = $xpath->query($your_xpath_query);
$temp_dom = new DOMDocument();
foreach($dom_node_list as $n) $temp_dom->appendChild($temp_dom->importNode($n,true));
print_r($temp_dom->saveHTML());

(XML ile ilgileniyor eğer Tabii ki yerine saveHTML arasında SaveXML kullanın.)

Bir DOMNodeList bir dizi gibi iterated edilebilir. Eğer DOMNodeList nesnenin dışarı veri çekme ve böyle bir dizi ya da stdClass nesne gibi farklı bir veri yapısı, içine koymak istiyorsanız, o zaman sadece düğümlerin değerleri ve / veya dönüştürme, DOMNodeList de "düğümler" yineleme aracılığıyla yeni veri yapısına onları eklemeden önce (kullanılabilir olmasını istediğiniz) bağlıyor.

var_dump($myobject); aradığınız şey olabilir

XPath sorgusu XML şey eşleşen değildir.

Kimden DomXPath::query manual page:

Returns a DOMNodeList containing all nodes matching the given XPath expression . Any expression which do not return nodes will return an empty DOMNodeList.

Nasıl bir özyinelemeli işlevi hakkında?

Function XMLPrint_r($d_DomNode) {
    print $d_DomNode->$nodeName." ".$d_DomNode->$nodeValue."<br>";
    Foreach($d_DomNode->$childNodes as $d_ChildNode) {
        print " ";
        XMLPrint_r($d_ChildNode);
    }
}

Ben bu test etmedi, ama fikir olsun.