DOMDocument使用换行符生成的XML

时间:2011-03-11 18:54:25

标签: php xml domdocument line-breaks

我正在使用PHP DOMDocument创建XML文件,这些XML文件不能包含换行符。

但是当我使用方法“ saveXML()”时,生成的XML会在定义和初始标记之间出现换行符,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe...

我可以在DOMDocument中更正此问题吗?或者在生成XML之后我必须这样做吗?

我想纠正这个问题,得到这样的结果:

<?xml version="1.0" encoding="UTF-8"?><NFe xmlns="...

1 个答案:

答案 0 :(得分:2)

默认情况下,DOMDocument::$preserveWhiteSpace为真。尝试在相关文档上将其设置为false,然后再次调用saveXML。如果文档中的任何空格实际上很重要,这可能会产生副作用。您还应确保DOMDocument::$formatOutput为假。

正如戈登所说,对于空白限制没有任何合理的理由。尽管如此,如果你不想要任何空格,只要确保你想要保留的任何CR / LF字符是实体编码的,然后$nonewlines = preg_replace("/[\r\n]/", '', $xml)就可以清除关闭后可能保留的换行符。保留和格式化。但同样,那是愚蠢的