我有xml文档的示例,并且php尝试创建相同的xml。
这是xml文档示例的一部分(如果使用Web浏览器打开则显示)
-<DeclarationFile>
-<Declaration Id="DEC">
-<DokPVNv4>
需要创建相同的。我的PHP代码
$DOM = new DOMDocument('1.0','UTF-8');
$root = $DOM->createElement('DeclarationFile');
$DOM->appendChild($root);
$child_declaration_id = $DOM->createElement('Declaration');
$root->appendChild($child_declaration_id);
$child_declaration_id_att = $DOM->createAttribute('Id');
$child_declaration_id->appendChild($child_declaration_id_att);
$att_child_declaration_id_text = $DOM->createTextNode('DEC');
$child_declaration_id_att->appendChild($att_child_declaration_id_text);
$DokPVNv4 = $DOM->createElement('DokPVNv4');
$root->appendChild($DokPVNv4);
在输出(网络浏览器)中获取此
-<DeclarationFile>
<Declaration Id="DEC"/>
<DokPVNv4/>
</DeclarationFile>
在xml的示例中,-
和<Declaration Id="DEC">
之前有<DokPVNv4>
。用我的PHP代码没有。这些-
是什么意思以及如何用php创建它们?
在<Declaration Id="DEC">
和<DokPVNv4>
中的xml示例中,没有/
。使用我的代码,我得到/
。如何删除它们(以及这些/
的意思)?
我认为所有差异都与根元素有关?
更新。目前从答案中理解的是:如果某些元素/标签没有结束标记,则元素以/
结尾。而-
+
,是的,浏览器会创建它们。
答案 0 :(得分:2)
-
可能是+
/ -
按钮中的浏览器绘图,允许您打开/关闭这些元素。 XML规范/>
REQUIRED 。两个标签都是容器,例如
<foo>
...
</foo>
或者它们是单身标签,在这种情况下它们必须是自动关闭的,例如
<bar />
您的代码未明确添加它们,但由于它们在xml中是必需的,因此DOM系统会为您添加它们。
答案 1 :(得分:1)
您的代码会创建错误嵌套的元素。 尝试更改此
$root->appendChild($DokPVNv4);
到这个
$child_declaration_id->appendChild($DokPVNv4);