DOMDocument yapısını değiştirerek ise xml çıktı biçimlendirmek çalışırken ben garip davranışları yaşıyorum.
Ben DomDocument dayalı basit Ürün sınıfı oluşturduk:
class Item extends DOMDocument {
private $root;
function __construct($version = null, $encoding = null) {
parent::__construct($version, $encoding);
$this->formatOutput = true;
$this->root = $this->createElement("root");
$this->root = $this->appendChild($this->root);
}
function build($name) {
$item = $this->createElement("item");
$name = $this->createTextNode($name);
$item->appendChild($name);
$this->getElementsByTagName("root")->item(0)->appendChild($item);
}
}
Şimdi, burada küçük kullanım durum var:
$it = new Item('1.0', 'iso-8859-1');
$it->build("first");
$it->build("seccond");
$xml = $it->saveXML();
echo $xml;
$it2 = new Item('1.0', 'iso-8859-1');
$it2->loadXML($xml);
$it2->build("third");
$it2->build("fourth");
$it2->build("fifth");
$it2->formatOutput = true;
$xml2 = $it2->saveXML();
echo $xml2;
Ve şimdi garip biraz. Ben komut arayabilir ve gerektiği gibi iki xml dosyaları üretir, ancak ben belgeyi düzenledikten sonra biçimlendirme şekilde kayıp olduğunu fark ettim. Bu tür vb herhangi bir girinti olmadan taşır
<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<item>first</item>
<item>seccond</item>
</root>
<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<item>first</item>
<item>seccond</item>
<item>third</item><item>fourth</item><item>fifth</item></root>
Ben burada eksik bir şey var varsayarak yaşıyorum. Belki de ben bir belgeyi, belki bazı sihirli ayarını açtıktan sonra kök düğümleri ekte veriyorum yoludur.
Kod iş yapar, ama bu garip davranışının nedeni ne olacağını merak ediyordum.
Herhangi bir fikir?
Greg