1
當我嘗試在修改domdocument結構時嘗試格式化xml輸出時,我遇到了奇怪的行爲。php domdocument奇怪的格式化
我已經創建了一個基於的DomDocument簡單的項目類:
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);
}
}
現在,我有小用例在這裏:
$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;
而現在的奇數位。我調用腳本,它會根據需要生成兩個xml文件,但是我注意到,在編輯文檔之後,格式化會以某種方式丟失。它排序沒有任何縮進等
<?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>
我假設這是我在這裏失蹤的東西。也許這是我打開文檔後將節點附加到根節點的方式,也許是一些魔術設置。
該代碼完成這項工作,但我想知道這種奇怪行爲的原因是什麼。
我知道這將是簡單的事情:) 謝謝,它是有道理的,並按預期工作。 – Greg 2010-08-27 11:25:35