PHP DOM XML не выводит разрывы строк после тегов - PullRequest
2 голосов
/ 10 февраля 2012

Так что моя проблема в том, что теги в моем XML-файле неправильно форматируются с помощью разрывов строк после них, когда я использую анализатор php XML DOM для сохранения.

$xdoc = new DOMDocument();
$xdoc->formatOutput = true;
$xdoc->preserveWhiteSpace  = false;
$xdoc->load($file);

$new_topic=$xdoc->createElement("topicref", "");
$new_topic->setAttribute("navtitle", $new_node);

$new_topichead=$xdoc->createElement("topichead", "");
$new_topichead->setAttribute("navtitle", $parent_node->getAttribute("navtitle"));
$new_topichead->appendChild($new_topic);
$parent_node->parentNode->replaceChild($new_topichead, $parent_node);

$xdoc->save($file);

Вот фрагмент моеговыходные данные:

<topichead>
    <topichead navtitle="blarg blarg"><topicref navtitle="another blarg blarg" href="another blarg blarg"></topicref></topichead>
</topichead>

Это всего лишь конец моего файла, но для тега, который я заменяю - topichead navtitle = "blarg blarg", с добавленной themeref, он прикрепляется рядом с нимвместо того, чтобы идти на следующую строку.И я не могу прочитать это так.

Как вы видите выше, я попытался "$ xdoc-> formatOutput = true; $ xdoc-> preserveWhiteSpace = false;"

, но они некажется, не работает - они форматируют с помощью вкладок, но это не дает мне правильные разрывы строк.

Спасибо =)

1 Ответ

8 голосов
/ 17 мая 2012

Это обычная проблема, очень раздражающая.Это немного грубая сила, но она должна работать:

// Reload XML to cause format output and/or preserve whitespace to take effect
$xdoc->loadXML($xdoc->saveXML());

$xdoc->save($file);
...