我一直在使用PHP DOM来创建和保存xml文件(第三方xml文件)。到目前为止,我的结构是正确的,但是遇到了一个元素没有用结束标签关闭的问题,即。
<FX>
<Stompbox ID="1">
<Module ID="0" POS="0" BypassState="1"/>
</Stompbox>
</FX>
应该是这样的 - 模块结束标记
<FX>
<Stompbox ID="1">
<Module ID="0" POS="0" BypassState="1"></Module>
</Stompbox>
</FX>
这是代码
$xmlRoot = $domtree->appendChild($xmlRoot);
/* Add FX node */
$fx = $domtree->createElement("FX");
$fx = $xmlRoot->appendChild($fx);
/* Add Stompbox node */
$fx->appendChild($stompbox = $domtree->createElement('Stompbox'));
$attr_mod = new DOMAttr('ID', "1");
$stompbox->setAttributeNode($attr_mod);
$stompbox->appendChild($module = $domtree->createElement('Module'));
$attr_mod = new DOMAttr('ID', "0");
$module->setAttributeNode($attr_mod);
$attr_pos = new DOMAttr('POS', '0');
$module->setAttributeNode($attr_pos);
$attr_bypass_state = new DOMAttr('BypassState', '1');
$module->setAttributeNode($attr_bypass_state);
感谢您的帮助。
答案 0 :(得分:2)
该元素已关闭。有两种方法可以在XML中关闭元素:
通过自我关闭:
<someelement someattr="somevalue" />
或者是空洞的内在:
<someelement someattr="somevalue"></someelement>
它们在语义上是相同的,并且许多实现选择前者,因为它会产生更小且更易读的文件。