Как мне создать пустой / пустой SimpleXMLElement в PHP?
Я пытаюсь использовать документ PHP для создания документа XML (для AJAX) с использованием встроенного в PHP 5 SimpleXMLElement
учебный класс. Я хочу начать с чистого листа и построить элемент XML за элементом, но я не нашел способа построить SimpleXMLElement
не начиная с какой-то существующей части кода XML. Я не смог успешно передать пустую строку ("") SimpleXMLElement
конструктор, поэтому в настоящее время я передаю XML для внешнего тега, а затем строю оттуда. Вот мой код:
// Start with a "blank" XML document.
$xml = new SimpleXMLElement("<feature></feature>");
// Add various children and attributes to the main tag.
$xml->addAttribute("id", $id);
$xml->addChild("title", $feature['title']);
$xml->addChild("summary", $feature['summary']);
// ...
// After the document has been constructed, echo out the XML.
echo $xml->asXML();
Есть ли более чистый способ сделать это?
1 ответ
Как уже упоминалось:
Подсказка находится в имени класса, вы создаете элементы SimpleXML.
Это имеет смысл для меня сейчас, когда SimpleXMLElement
не может быть пустым". Это должен быть допустимый элемент XML, который предполагает наличие имени тега и открывающих и закрывающих тегов (например, <feature></feature>
или же <body></body>
).
Казалось бы, это означает, что SimpleXMLElement
был создан для анализа, а не для создания XML-документов. При этом я обнаружил, что очень легко создать документ с нуля. Класс делает много хороших вещей автоматически, включая компактность и вывод номера версии XML вверху (<?xml version="1.0"?>
).
Я бы порекомендовал этот подход всем, кому нужно использовать PHP для создания небольших XML-документов. Это лучше, чем повторять теги как строки в любой день.
Спасибо всем за ваши комментарии!