如何在PHP中创建一个空/空的SimpleXMLElement?

2022-04-13 00:00:00 php simplexml

我正在尝试使用PHP 5的内置SimpleXMLElement类使用一个PHP文档来构造一个XML文档(用于AJAX)。我想从头开始,一个元素一个元素地构建XML元素,但我发现,如果不从一些现有的XML代码开始,就无法构建SimpleXMLElement。我无法成功地将空白字符串("")传递给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();

有没有更干净的方法来做这件事?


解决方案

Salathe提到:

线索在类名中,您正在创建SimpleXML元素。

对我来说,SimpleXMLElement不能为"空"是有意义的。它必须是有效的XML元素,需要有标记名以及开始和结束标记(例如<feature></feature><body></body>)。

这似乎意味着SimpleXMLElement是为解析而不是构建XML文档而创建的。话虽如此,我发现从头开始构建文档非常容易。这个类自动做了许多很好的事情,包括保持一切紧凑,并在顶部输出XML版本号(<?xml version="1.0"?>)。

我建议需要使用PHP构建小型XML文档的任何人使用这种方法。这比任何时候以字符串形式回显标签都要好。

谢谢大家的评论!

相关文章