2012-02-09 14 views
2

私の問題は、php XML DOMパーサーを使用して保存するときにXMLファイル内のタグが改行で正しくフォーマットされていないことです。PHP DOM XMLでタグの後に改行が印刷されない

$xdoc = new DOMDocument(); 
$xdoc->formatOutput = true; 
$xdoc->preserveWhiteSpace = false; 
$xdoc->load($file); 

$new_topic=$xdoc->createElement("topicref", ""); 
$new_topic->setAttribute("navtitle", $new_node); 

$new_topichead=$xdoc->createElement("topichead", ""); 
$new_topichead->setAttribute("navtitle", $parent_node->getAttribute("navtitle")); 
$new_topichead->appendChild($new_topic); 
$parent_node->parentNode->replaceChild($new_topichead, $parent_node); 

$xdoc->save($file); 

ここに私の出力の抜粋です:

<topichead> 
    <topichead navtitle="blarg blarg"><topicref navtitle="another blarg blarg" href="another blarg blarg"></topicref></topichead> 
</topichead> 

これは私のファイルのちょうど終わりですが、タグのため、私は交換しています - topichead navtitle =「blarg blargを」、と追加されたtopicrefは、次の行に行くのではなく、隣にタックされます。そして私はこれのように読むことができません。

上記のように、私は "$ xdoc-> formatOutput = true; $ xdoc-> preserveWhiteSpace = false;を試しました。

しかし、これらは動作していないようです - タブでフォーマットしますが、私に正しい改行を与えません。

ありがとう=)

答えて

8

よくある問題です。非常に迷惑です。これは少し強引ですが、うまくいくはずです:

// Reload XML to cause format output and/or preserve whitespace to take effect 
$xdoc->loadXML($xdoc->saveXML()); 

$xdoc->save($file); 
関連する問題