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

时间:2010-12-23 07:22:46

标签: php simplexml

我正在尝试使用PHP文档来构建一个使用PHP 5的内置SimpleXMLElement类的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();

有更简洁的方法吗?

1 个答案:

答案 0 :(得分:5)

salathe提到:

  

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

现在我觉得SimpleXMLElement不能“空”。它必须是有效的XML元素,需要具有标记名称以及开始和结束标记(例如<feature></feature><body></body>)。

这似乎暗示SimpleXMLElement是为解析而不是构建XML文档而创建的。话虽这么说,我发现从头开始构建文档非常容易。该类自动执行许多不错的操作,包括保持所有内容紧凑并在顶部输出XML版本号(<?xml version="1.0"?>)。

我会向需要使用PHP构建小型XML文档的任何人推荐这种方法。它会在任何一天将标签回显为字符串。

谢谢大家的意见!