Подтвердить что ты не робот

Как создать пустой/пустой SimpleXMLElement в PHP?

Я пытаюсь использовать документ PHP для создания XML-документа (для AJAX) с использованием встроенного класса SimpleXMLElement PHP 5. Я хочу начать с чистого листа и построить элемент 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();

Есть ли более чистый способ сделать это?

4b9b3361

Ответ 1

Как сказал салате:

Ключ в имени класса, вы создаете элементы SimpleXML.

Теперь мне кажется, что SimpleXMLElement не может быть "пустым". Он должен быть допустимым XML-элементом, который подразумевает наличие имени тега и открывающих и закрывающих тегов (например, <feature></feature> или <body></body>).

Это, по-видимому, означает, что SimpleXMLElement был создан для синтаксического анализа, а не для создания XML-документов. При этом мне было очень легко создать документ с нуля. Класс делает много приятных вещей автоматически, включая сохранение всего компактного и вывод номера версии XML вверху (<?xml version="1.0"?>).

Я бы рекомендовал этот подход всем, кто должен использовать PHP для создания небольших XML-документов. Это бьет, повторяя теги как строки в любой день.

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