3
如何在元素中創建新行?XML - 創建元素 - 新行
我做的:
$currentTrack->appendChild($domtree->createElement('code', ' test1;
test2;
test3;'));
但是它增加了
每行的末尾。我怎樣才能擺脫這一點?
如何在元素中創建新行?XML - 創建元素 - 新行
我做的:
$currentTrack->appendChild($domtree->createElement('code', ' test1;
test2;
test3;'));
但是它增加了
每行的末尾。我怎樣才能擺脫這一點?
是\r\n
樣式行結尾的回車部分。我認爲DOMDocument編碼它來保存它。如果你檢查XML specification它說它將被規範化爲\n
如果沒有編碼。
所以,你有不同的選擇:
\n
風格的行結束符保存文件這裏之前規範化行結束\n
是一些示例源來顯示不同的行爲:
$text = "test1;\r\ntest2;\r\ntest3;\r\n";
$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->appendChild($root = $dom->createElement('root'));
$root->appendChild(
$node = $dom->createElement('code')
);
// text node - CR will get escaped
$node->appendChild($dom->createTextNode($text));
$root->appendChild(
$node = $dom->createElement('code')
);
// cdata - CR will not get escaped
$node->appendChild($dom->createCdataSection($text));
$root->appendChild(
$node = $dom->createElement('code')
);
// text node, CRLF and CR normalized to LF
$node->appendChild(
$dom->createTextNode(
str_replace(array("\r\n", "\r"), "\n", $text)
)
);
$dom->formatOutput = TRUE;
echo $dom->saveXml();
輸出:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<code>test1;
test2;
test3;
</code>
<code><![CDATA[test1;
test2;
test3;
]]></code>
<code>test1;
test2;
test3;
</code>
</root>
非常感謝你的解釋和所有這些例子:) – Michael
是這樣嗎'SimpleXML'? – Machavity
沒有'DOMDocument' – Michael
嗯看起來像這是一件很難做的事情:( – Michael