Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php pearxml_序列化程序中空标记的处理_Php_Xml_Pear - Fatal编程技术网

Php pearxml_序列化程序中空标记的处理

Php pearxml_序列化程序中空标记的处理,php,xml,pear,Php,Xml,Pear,Im使用PEAR XML序列化程序从数组输入生成XML结果。我发现空数组元素的编码如下:。我宁愿这样 以下是我的选择: $options = array ( 'indent' => ' ', 'defaultTagName' => $this->xml_tag_name, 'addDecl' => true,

Im使用PEAR XML序列化程序从数组输入生成XML结果。我发现空数组元素的编码如下:。我宁愿这样

以下是我的选择:

            $options = array
            (
                'indent' => '   ',
                'defaultTagName' => $this->xml_tag_name,
                'addDecl' => true,
                'encoding'  => 'UTF-8',
                'rootName' => $this->xml_root_name,
                XML_SERIALIZER_OPTION_RETURN_RESULT => true
            );

是否有任何其他选项可以添加以修复此问题?

在库的实际状态中,它使用了no,如果您查看
XML\u Util::createTagFromArray()
的代码,它会对空标记执行以下操作:

if (!isset($tag['content']) || (string)$tag['content'] == '')
{
    $tag = sprintf('<%s%s />', $tag['qname'], $attList);
}
if(!isset($tag['content'])| |(string)$tag['content']='')
{
$tag=sprintf(“”,$tag['qname'],$attList);
}
您可能会用一个包含空格(如
'
)的字符串来伪造空内容,但这会导致类似
的结果


顺便说一句,
在XML中是完全合法的(建议用于空标记,在XHTML中也使用它)。

您喜欢
格式而不是
格式的具体原因是什么?注意(正如另一张海报所说)
是完全有效的XML。就我个人而言,我更喜欢空标签的自动关闭