Php SimpleXMLElement不会创建正确的子级
我正在使用Php SimpleXMLElement不会创建正确的子级,php,simplexml,Php,Simplexml,我正在使用simplexmlement创建一个新的xml文件。 我想创建类似于以下内容的内容: <?xml version="1.0"?> <command type="scenario" name="test"> <game type="play" filename="google"> </game> </command> 为什么? 文件中未显示新行 游戏标记没有结束标记 试试这个 $game = new Simpl
simplexmlement
创建一个新的xml文件。
我想创建类似于以下内容的内容:
<?xml version="1.0"?>
<command type="scenario" name="test">
<game type="play" filename="google">
</game>
</command>
为什么?
结束标记$game = new SimpleXMLElement('', LIBXML_NOEMPTYTAG);
$xml->addChild($game);
您可以在这里找到格式化输出的解决方案@lexicus解释了如何实现所需的输出。在回答您的问题“为什么?”时,示例文件和SimpleXML输出之间在逻辑上没有区别:
)还是由57392391空行分隔并不重要;所有解析器将看到的都是XML元素
只是
的XML缩写。/>
明确表示它是一个空标记您没有在SimpleXML中编写文档;您正在构建一个XML树。当您调用
->asXML()
时,它会以尽可能简单的方式写出树。我很困惑,请给出一个将输出我要求的代码的示例。如果行得通,我会接受你的回答。只需在你的答案中编辑它。谢谢,当我添加LIBXML\u NOEMPTYTAG时,我得到了介于…之间的数字4??我刚刚读到LIBXML\u NOEMPTYTAG有一个bug。所以这就是为什么我可能会得到意外的输出。有什么原因需要它和空格和完整的结束标记一起输出吗?就任何XML解析器而言,这两个文档都是相同的。
<?xml version="1.0"?>
<command type="scenario" name="test"><game type="play" filename="google"/></command>
$game = new SimpleXMLElement('', LIBXML_NOEMPTYTAG);
$xml->addChild($game);