Intereting Posts
Команды не синхронизированы; вы не можете запустить эту команду сейчас, когда я запускаю цикл Создание уникальных идентификаторов ввода формы и имени ввода во время цикла Конвертация валюты для сайта электронной коммерции – Предотвращение неправильной полной корзины из-за округления рекурсивное регулярное выражение для обработки вложенных строк, заключенных в {| и |} Как использовать опцию подписчика? Почему PHP не поддерживает многопоточность? Работа с API-интерфейсами Instagram (JSON + PHP) Справка MAMP Config, отображение ошибок PHP Вытягивание JSON через AJAX для заполнения Drop-Down Допустимый размер памяти 134217728 байт. Как выполнить команды SSH через PHP Doctrine2 ManyToMany не выполняет события прослушивателя Как создать базу данных в Google Cloud Cloud Загрузка файла на php-сервере с устройства Android 500 Внутренняя ошибка сервера с использованием PHP и SQLite

Упрощение / форматирование вывода в SimpleXML

У меня есть этот скрипт simplexml, который я использую для публикации данных, введенных из формы.

$xml = simplexml_load_file("links.xml"); $sxe = new SimpleXMLElement($xml->asXML()); $person = $sxe->addChild("link"); $person->addChild("title", "Q: ".$x_title); $person->addChild("url", "questions_layout.php#Question$id"); $sxe->asXML("links.xml"); 

и когда он выходит, он выглядит так на одной строке:

 <link><title>Alabama State</title><url>questions_layout.php#Question37</url></link><link><title>Michigan State</title><url>questions_layout.php#Question37</url></link></pages> 

Но я пробовал метод, найденный ЗДЕСЬ И ЭТО ТАК ЖЕ, но ни один формат XML правильно в строках, поскольку они должны быть похожи

 <link> <title></title> <url></url> </link> 

В первой ссылке ссылки я даже изменил loadXML для load , потому что loadXML ожидает строку как XML. Может ли кто-нибудь помочь мне найти решение этого, пожалуйста?

AFAIK simpleXML не может сделать это самостоятельно.

Однако DOMDocument может.

 $dom = dom_import_simplexml($sxe)->ownerDocument; $dom->formatOutput = TRUE; $formatted = $dom->saveXML(); 

Я думаю, что выше принятого ответа от stackoverflow полномочия не решались выше вопроса. Ссылка: [Я пробовал ваш ответ, и я получил Неустранимая ошибка: вызов неопределенного метода DOMElement :: saveXML () в строке, где $formatted = $dom->saveXML();

 $simplexml = simplexml_load_file("links.xml"); $dom = new DOMDocument('1.0'); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXML($simplexml->asXML()); $xml = new SimpleXMLElement($dom->saveXML()); $person = $xml->addChild("link"); $person->addChild("title", "Q: ".$x_title); $person->addChild("url", "questions_layout.php#Question$id"); $xml->saveXML("links.xml");