Как мне создать пустой / пустой 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-документов. Это лучше, чем повторять теги как строки в любой день.

Спасибо всем за ваши комментарии!

Другие вопросы по тегам