【问题标题】:- and /> in xml document (with php trying to create the same document as in example)- 和 /> 在 xml 文档中(使用 php 尝试创建与示例中相同的文档)
【发布时间】:2013-08-03 01:59:43
【问题描述】:

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

  2. &lt;Declaration Id="DEC"&gt;&lt;DokPVNv4&gt; 的xml 示例中,没有/。使用我的代码,我得到/。如何删除它们(以及这些 / 的含义)?

我想所有的差异都与根元素有关吗?

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

【问题讨论】:

    标签: php xml


    【解决方案1】:

    - 可能是浏览器在一个+/- 按钮中绘制,允许您打开/关闭这些元素。 /&gt; 是 XML 规范必需的。任何一个标签都是容器,例如

    <foo>
       ...
    </foo>
    

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

    <bar />
    

    您的代码没有显式添加它们,但由于它们在 xml 中是必需的,因此 DOM 系统正在为您添加它们。

    【讨论】:

    • 是的,现在看到+- 浏览器添加了。
    【解决方案2】:

    您的代码创建的元素嵌套错误。 试试改这个

    $root->appendChild($DokPVNv4);
    

    到这里

     $child_declaration_id->appendChild($DokPVNv4);
    

    【讨论】:

    • 已更正。现在可以使用&lt;Declaration Id="DEC"&gt;。但是对于&lt;DokPVNv4/&gt;/。看到了什么,当进行更正时,&lt;Declaration Id="DEC"&gt; 关闭&lt;/Declaration&gt;。对于&lt;DokPVNv4/&gt; 没有结束标签
    • 尝试发布您尝试复制的原始 XML。该代码创建了一个空元素,该元素被序列化而无需关闭部分,仅使用 />
    • ....它有 181 行...如果我发布这么久就不好了...似乎已经回答了我的问题。我将您的答案标记为已接受,因为这表明了我的错误。
    猜你喜欢
    • 2012-11-13
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 2019-06-17
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多