2015-05-22 1 views
1

Я боролся с этой проблемой, и я не могу понять, почему в первой строке xml-файла есть пробел.PHP DOM XML formatoutput добавление пробела в первой строке

Я создаю XML как строку, например, так:

$xml = '<?xml version="1.0" encoding="utf-8" standalone="no" ?>'; 
$xml .= '<AuditFile xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.03_01">'; 

Следующее изображение представляет собой код, указанный выше.

enter image description here

И тогда я сохранить файл таким образом

$xml = new DOMDocument('1.0'); 
$xml->preserveWhiteSpace = FALSE; 
$xml->formatOutput = TRUE; 
$xml->loadXML($xmlString); 
$xml->save('myfile.xml'); 

Сейчас проблема заключается в том, что файл содержит пробел в первой строке. Как его удалить? Я пытался без успеха ltrim($xmlString);

enter image description here

ответ

1

решенный.

Я выяснил, что проблема была не в классе DOMDocument, а да, о функции, которая позволяет пользователю загружать файл.

Раньше у меня было так:

header('Content-Description: File Transfer'); 
header('Content-Type: text/xml'); 
header('Content-Disposition: attachment; filename=' . basename($file)); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 

readfile($file); 

И этот кусок кода добавлял лишние пробелы в файле после загрузки. Чтобы решить эту проблему, мне пришлось добавить ob_clean() до readfile().