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ı.