- 和/>在xml文档中(使用php尝试创建与示例相同的文档)

时间:2013-08-02 17:36:47

标签: php xml

我有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>
  1. 在xml的示例中,-<Declaration Id="DEC">之前有<DokPVNv4>。用我的PHP代码没有。这些-是什么意思以及如何用php创建它们?

  2. <Declaration Id="DEC"><DokPVNv4>中的xml示例中,没有/。使用我的代码,我得到/。如何删除它们(以及这些/的意思)?

  3. 我认为所有差异都与根元素有关?

    更新。目前从答案中理解的是:如果某些元素/标签没有结束标记,则元素以/结尾。而- +,是的,浏览器会创建它们。

2 个答案:

答案 0 :(得分:2)

-可能是+ / -按钮中的浏览器绘图,允许您打开/关闭这些元素。 XML规范/> REQUIRED 。两个标签都是容器,例如

<foo>
   ...
</foo>

或者它们是单身标签,在这种情况下它们必须是自动关闭的,例如

<bar />

您的代码未明确添加它们,但由于它们在xml中是必需的,因此DOM系统会为您添加它们。

答案 1 :(得分:1)

您的代码会创建错误嵌套的元素。 尝试更改此

$root->appendChild($DokPVNv4);

到这个

 $child_declaration_id->appendChild($DokPVNv4);