我有一些xml,我在一个类似的函数中手动构造:
$xml = "<myxml>";
$xml .= "<items>";
$xml .= "<item1>blah</item1>";
$xml .= "</items>";
$xml .= "</myxml>";
当我输出字符串时,我希望新行存在。如何在不影响接受xml的Web服务的情况下将其添加到字符串中? XML中的换行符是否重要?
答案 0 :(得分:9)
新行不是必需的,但您可以使用PHP_EOL常量,这是查找新行字符的跨平台方式。即。
$xml = "<myxml>".PHP_EOL;
答案 1 :(得分:2)
您可以通过$xml = "<myxml>\n";
添加它们,但是,根本不需要它们,因为任何XML解析器都会忽略它们。
答案 2 :(得分:2)
如果您不必担心不同类型的换行符(“\ n”,“\ r \ n”,“\ r”),您可以简单地使用多行字符串文字,例如:
$xml = '<myxml>
<items>
<item1>blah</item1>
</items>
</myxml>';
或
$xml = <<< EOT
<myxml>
<items>
<item1>blah</item1>
</items>
</myxml>
EOT;
但请记住,这些文件不一定等同于
<myxml><items><item1>blah</item1></items></myxml>
http://www.w3.org/TR/REC-xml/说:
2.10白色空间处理
[...]
XML处理器必须始终将文档中未标记的所有字符传递给应用程序。验证XML处理器还必须通知应用程序哪些字符构成元素内容中出现的空格
名为xml:space的特殊属性可以附加到元素,以表示在该元素中应该由应用程序保留空白的意图
空格可以被标记为重要的或无意义的,并且消费者可以或多或少地选择是否将其处理为非重要的,例如通过<xsl:strip-space .../>
。
答案 3 :(得分:1)
答案 4 :(得分:1)
你可以像这样写你的XML,
$xml = <<<XML
<myxml>
...
</myxml>
XML;