【问题标题】:WriteCData XMLWriter and new line in PHPWriteCData XMLWriter 和 PHP 中的新行
【发布时间】:2016-01-05 10:45:55
【问题描述】:

我正在尝试使用 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();

但是输出没有返回任何新行,因为我写了 "\n"...

返回:

<test>my string    my string</test>

而不是:

<test>my string
my string
</test>

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

你有什么想法吗?

非常感谢!

【问题讨论】:

  • 通过 php-cli 运行脚本时出现换行符,即将输出发送到控制台。 3v4l.org/JksDe 也显示了换行符。

标签: php xml cdata xmlwriter


【解决方案1】:

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

【讨论】:

  • 我试过这个: $xml->startElement('textValue')->writeRaw('')->endElement();它似乎工作。希望我的 XML 在 CDATA 中的新行仍然有效!
猜你喜欢
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多