PHP 中的 WriteCData XMLWriter 和新行

WriteCData XMLWriter and new line in PHP

我正在尝试在 PHP 中使用 XMLWriter 在 CData 节点中添加新行。

$xml = new XMLWriter(); 
$xml->openURI('php://output'); 
$xml->startDocument('1.0', 'UTF-8'); 
$xml->setIndent(true);

$str = "my string\nmy string";
$xml->startElement('test');
$xml->writeCData($str);
$xml->endElement();
$xml->endDocument();

但是输出没有 return 我写的任何新行 "\n"...

returns :

<test>my string    my string</test>

而不是:

<test>my string
my string
</test>

我在其他帖子上看到一些用户使用“ ”代码或“& #xD;” (没有 space)但是当我把它放在我的 $str 变量中时,那些字符被转义并且 XMLWriter 将它写为输出,并且不会换行。

你有什么想法吗?

非常感谢!

我认为没有简单的方法来格式化 PHP 的 XMLWriter 的输出,因为输出旨在机器可读,而不是人类可读。 虽然可以使用 XMLWriter::writeRaw 添加自定义换行符。