PHP SimpleXML новая строка - PullRequest
       16

PHP SimpleXML новая строка

6 голосов
/ 03 декабря 2009

Я создал XML-файл, используя простой XML-код PHP, сохранил файл. При открытии файла в php с помощью fopen и печати содержимого. мой XML выглядит так: (см. ниже)

<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>

Я хочу, чтобы XML-файл выглядел с отступом и в новых строках для каждого элемента. Кто-нибудь знает, как это сделать?

Спасибо

Ответы [ 3 ]

11 голосов
/ 03 декабря 2009

Вы можете сделать это, используя formatOutput свойство DOMDocument.

Вместо этого сохраните ваш XML-файл, предполагая, что ваш XML-файл находится в переменной с именем $yourXML, и вы хотите сохранить его в файл на $xmlFilePath:

$dom = new DOMDocument();
$dom->loadXML($yourXML);
$dom->formatOutput = true;
$formattedXML = $dom->saveXML();

$fp = fopen($xmlFilePath,'w+');
fwrite($fp, $formattedXML);
fclose($fp);

Код, адаптированный с здесь .

2 голосов
/ 03 декабря 2009

Это называется "красивая печать", а SimpleXML этого не делает. Если вы выполните поиск по переполнению стека и в других местах в Интернете, вы найдете специальные решения, которые делают это.

Хорошая печать хороша для визуализации, но Я не рекомендую сохранять документы в этом формате .

Если вы все еще ищете симпатичный принтер, вы можете попробовать SimpleDOM asPrettyXML ()

include 'SimpleDOM.php';

$home = simpledom_load_string('<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>');

echo $home->asPrettyXML();
0 голосов
/ 22 сентября 2016

эхо "\ n"; для новой строки в xml

ob_start (); эхо '. "\ П";?>

...