PHP DOMDocument nesne kayıtlı ad numaralandırmak

1 Cevap php

Benim projelerin biri için, ben XML belgeleri yüklemek ve işlemek için DOMDocument sınıfını kullanıyorum.

Ben belgede kullanılan her ad almak gerekiyordu; Ancak, ben bunu istiyorum nasıl bulamıyor. DOMDocument sınıf bir tanım ya da bir ad öneki URI ad öneki için yöntemler vardır, ama aslında kayıtlı ad numaralandırmak şey gördüm.

SimpleXML kütüphane bunun için getNamespaces() yöntemi vardır. DOMDocument için bir eşdeğer var mı?

1 Cevap

DOM afaik böyle bir fonksiyonu yoktur. Ben SimpleXML kaynak koduna kısaca baktım ve bunu yüklenen XML dolaşır ve (benim C çok kötü) ad toplar düşünüyorum. Kolay çözüm bu amaç için SimpleXML içine DOM DOM alarak ad almak olacaktır. Belki böyle:

class DomUtils
{
    public static function getNamespaces($dom)
    {
        $sxe = simplexml_import_dom($dom);
        return $sxe->getNamespaces(); 
    }

    public static function getDocNamespaces($dom)
    {
        $sxe = simplexml_import_dom($dom);
        return $sxe->getDocNamespaces();
    }
}

Ayrıca XPath ile tüm ad almak için deneyebilirsiniz. Aşağıdaki soru ve cevapları bakın: