如何在PHP中创建一个空/空的SimpleXMLElement?
我正在尝试使用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文档的任何人使用这种方法。这比任何时候以字符串形式回显标签都要好。
谢谢大家的评论!
相关文章