2017-05-15 15 views
1

私はXMLファイルを扱っています。フォームからのデータはこのファイルに送られます。すべての まず私はルートタグを持つ新しいXMLファイルを作成します。PHP DOM formatOutputはXMLファイルで一度だけ動作します

$doc = new DOMDocument('1.0') 
$root = $doc->createElement('users'); 
$doc->appendChild($root); 
$doc->save('path/filename.xml'); 

次に、プログラムがこのファイルを開くと、新しいデータを追加します。私のプログラムは、最初にデータを追加する場合

$doc = new DOMDocument('1.0'); 
$doc->load('path/filename.xml'); 
$doc->formatOutput = true; 
$doc->preserveWhiteSpace = false; 
...adding some data... 
$doc->save('path/filename.xml'); 

がformatOutputがよくなります。

<users> 
    <user> 
     <name>Username1</name> 
    </user> 
</users> 

しかし、プログラムが再びデータを追加するときformatOutputが動作しません:

<users> 
    <user> 
     <name>Username1</name> 
    </user> 
<user><name>Username2</name></user><user><name>Username3</name></user></users> 
+1

これはバグかもしれません。どうかしてください:http://kslt.tk/domdocument – kodmanyagha

+0

'preserveWhiteSpace'をtrueに設定するとどうなりますか?これは単なる推測です...ごめんなさい。 –

答えて

1

私は間違いを見つけます。 formatOutputとpreserveWhiteSpaceはロードされている必要があります。

$doc = new DOMDocument('1.0'); 

$doc->formatOutput = true; 
$doc->preserveWhiteSpace = false; 

$doc->load('path/filename.xml'); 

ありがとう@kodmanyaghaはリンクです。

+0

ああ、そうですね。 –

関連する問題