Я пытаюсь использовать PHP-документ для создания XML-документа (для AJAX) с использованием встроенного класса SimpleXMLElement
PHP 5. Я хочу начать с чистого листа и создать элемент XML по элементу, но я не нашел способа построить SimpleXMLElement
не начиная с какой-либо существующей части XML-кода. Я не смог успешно передать пустую строку ("") в конструктор SimpleXMLElement
, поэтому в настоящее время я SimpleXMLElement
XML для самого внешнего тега, а затем SimpleXMLElement
оттуда. Вот мой код:
// 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();
Есть ли более чистый способ сделать это?
Как сказал салате:
Ключ в имени класса, вы создаете элементы SimpleXML.
Теперь для меня имеет смысл, что SimpleXMLElement
не может быть «пустым». Он должен быть допустимым элементом XML, который подразумевает наличие имени тега и открывающих и закрывающих тегов (например, <feature></feature>
или <body></body>
).
Это, по-видимому, означает, что SimpleXMLElement
был создан для синтаксического анализа, а не для создания XML-документов. При этом мне было очень легко создать документ с нуля. Класс делает много приятных вещей автоматически, включая сохранение всего компактного и вывод номера версии XML вверху ( <?xml version="1.0"?>
).
Я бы рекомендовал этот подход всем, кто должен использовать PHP для создания небольших XML-документов. Это бьет, повторяя теги в виде строк в любой день.
Спасибо, всем, за ваши комментарии!