Yeni oluşturulan SimpleXML düğümlerinde dom_import_simplexml ile Problem

0 Cevap php

Ben uzanan bir sınıf üzerinde çalışan SimpleXMLElement ediyorum:

class MyXML extends SimpleXMLElement {
    public function cdata($text) {
        $node = dom_import_simplexml($this);
        $owner = $node->ownerDocument;
        $node->appendChild($owner->createCDATASection($text));
        return $this;
    }
}

Bir SimpleXMLElement beri, ben dinamik içindeki XML düğümleri oluşturabilirsiniz:

$xml = new MyXML('<foo/>');
$xml->bar = 'Test';
print $xml->asXML(); // <foo><bar>Test</bar></foo>

Ama bu çalıştırmayı denediğinizde:

$xml = new MyXML('<foo/>');
$xml->bar->cdata('Test');

Alıyorum:

Warning: dom_import_simplexml(): Invalid Nodetype to import in [..]

Ben çalıştırmadan önce oluşturulacak SimpleXMLElement düğüm zorlamak Ancak, cdata(), tekrar çalışır:

$xml = new MyXML('<foo/>');
$xml->bar = '';
$xml->bar->cdata('Test');
print $xml->asXML(); // <foo><bar><![CDATA[Test]]></bar></foo>

Ne buldum bir hata varsa, ben merak ediyorum, ve ilk düğümü "priming" olmadan etrafında çalışmak için herhangi bir yol olup olmadığını.

0 Cevap