【问题标题】:how make node like this <node/> with php xmlwriter如何使用 php xmlwriter 制作像这样的 <node/> 节点
【发布时间】:2020-01-15 01:02:03
【问题描述】:

我需要用 php 代码制作一个 xml,但我现在不知道如何制作像 &lt;node/&gt; 这样的单个节点 使用 xmlwriter 方法。 例子

<node>
     <element>ONE</element>
     <element>TWO</element>
     **<node_i_want_but_idontnow/>**
     <element>end</element>
</node>

提前致谢

【问题讨论】:

标签: php xml


【解决方案1】:

&lt;node-name/&gt; 只是一个优化。如果元素节点没有子节点(元素、文本、cmets,...)。可以直接关闭。对于解析器,它与&lt;node-name&gt;&lt;/node-name&gt; 相同。

默认情况下,序列化程序将应用该优化。但是,如果您添加一个空字符串作为内容,您将创建一个文本子节点并阻止优化:

$writer = new XMLWriter();
$writer->openURI('php://stdout');
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('node');

// element with content
$writer->writeElement('element', 'one');
// empty element
$writer->writeElement('another_element');
// element with empty child node
$writer->writeElement('another_element', '');

$writer->endElement();
$writer->endDocument();

输出:

<?xml version="1.0"?>
<node>
 <element>one</element>
 <another_element/>
 <another_element></another_element>
</node>

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多