我正在使用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="...
答案 0 :(得分:2)
默认情况下,DOMDocument::$preserveWhiteSpace
为真。尝试在相关文档上将其设置为false,然后再次调用saveXML
。如果文档中的任何空格实际上很重要,这可能会产生副作用。您还应确保DOMDocument::$formatOutput
为假。
正如戈登所说,对于空白限制没有任何合理的理由。尽管如此,如果你不想要任何空格,只要确保你想要保留的任何CR / LF字符是实体编码的,然后$nonewlines = preg_replace("/[\r\n]/", '', $xml)
就可以清除关闭后可能保留的换行符。保留和格式化。但同样,那是愚蠢的。