php DOMDocument sınıfı ile yardımcı

2 Cevap php

Burada benim xml DOM.

        <entities>
            <entity id="7006276">
                <title>xxx</title>
                <entities>
                    <entity id="7877579">
                       <title>xxx</title>
                       <entities>

öylesine i bunun için bazı 'işletmenin' öğelerini oluşturmak için alt 'kişiler' erişebilecek kimliği 7006276 ile 'varlık' almak istiyorum.

ben denedim:

 $this->xmlDocument = new DOMDocument();
 // some code creating the above elements (you dont have to care about this comment code...it just creates the above xml structure
 // $this->xmlDocument->createElement('entity');
 // $sourceEntityElement->appendChild($newEntityElement);
 // and so on...

 // now i want to get the entities mentioned...
 $xmlEntities = $this->xmlDocument->getElementById('7006276')->entities;

ama çalışmak için görünmüyor. i almak nasıl bir fikir bu yüzden daha 'işletmenin' elemanları yaratabilir?

2 Cevap

Şu anda, PHP, DOMDocument::getElementById çağırdığınızda aramak için nitelik bilmiyor. DOMElement::setIdAttribute veya bir DTD karşı belgenizi doğrulamak ile documentation for getElementById , you need to either set inform PHP about your id niteliğine göre DOMDocument::validate.

Sen Özelliklerine göre öğeleri seçmek için XPath'i kullanabilirsiniz. Sen SimpleXML ve emin doğru yükler olmak için kontrol etmek dönüştürmek gerekir.

Bu çalışacak ama burada temel kavram değil mi:

$sxe = simplexml_import_dom($this->xmlDocument);

$data = $sxe->xpath('//entity[@id="700627"]');

    foreach ($data as $value)
    {
           $value->addChild('entity');
    }