我正在尝试使用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();
有更简洁的方法吗?
答案 0 :(得分:5)
salathe提到:
线索在类名中,您正在创建SimpleXML 元素。
现在我觉得SimpleXMLElement
不能“空”。它必须是有效的XML元素,需要具有标记名称以及开始和结束标记(例如<feature></feature>
或<body></body>
)。
这似乎暗示SimpleXMLElement
是为解析而不是构建XML文档而创建的。话虽这么说,我发现从头开始构建文档非常容易。该类自动执行许多不错的操作,包括保持所有内容紧凑并在顶部输出XML版本号(<?xml version="1.0"?>
)。
我会向需要使用PHP构建小型XML文档的任何人推荐这种方法。它会在任何一天将标签回显为字符串。
谢谢大家的意见!