XML, сгенерированный DOMDocument с разрывом строки - PullRequest
3 голосов
/ 11 марта 2011

Я создаю XML-файлы с помощью PHP DOMDocument, и эти 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 Ответ

2 голосов
/ 11 марта 2011

По умолчанию DOMDocument::$preserveWhiteSpace имеет значение true. Попробуйте установить значение false в соответствующем документе, а затем снова вызвать saveXML. Это может иметь побочные эффекты, если какие-либо пробелы внутри документа действительно имеют значение. Вы также должны убедиться, что DOMDocument::$formatOutput неверно.

Как сказал Гордон, тем не менее, нет никаких логических причин для ограничения пробелов. Хотя, если серьезно, если вам вообще не нужны какие-либо пробелы, просто убедитесь, что все символы CR / LF, которые вы хотите сохранить, закодированы как сущности, а затем $nonewlines = preg_replace("/[\r\n]/", '', $xml), чтобы вырвать символы новой строки, которые могут остаться после выключения Preserve и Формат. Но опять же, это глупо .

...