我正在使用PEAR XML Serializer从数组输入生成xml结果。我发现空数组元素的编码方式如下:< arraykey />。我更喜欢这种方式< arraykey>< / arraykey>
以下是我的选择:
$options = array
(
'indent' => ' ',
'defaultTagName' => $this->xml_tag_name,
'addDecl' => true,
'encoding' => 'UTF-8',
'rootName' => $this->xml_root_name,
XML_SERIALIZER_OPTION_RETURN_RESULT => true
);
是否还有其他选项可以解决此问题?
答案 0 :(得分:1)
在库的实际状态中,它使用PEAR XML_Util,如果查看XML_Util::createTagFromArray()
的代码,则会对空标记执行以下操作:
if (!isset($tag['content']) || (string)$tag['content'] == '')
{
$tag = sprintf('<%s%s />', $tag['qname'], $attList);
}
您可能使用包含' '
等空格的字符串伪造空内容,但这会产生类似<arraykey> </arraykey>
的内容。
BTW,<arraykey/>
在XML中是完全合法的(建议用于空标签,它也用于XHTML)。
答案 1 :(得分:0)
您是否更喜欢<tag></tag>
格式而不是<tag />
?注意到(正如另一张海报所说)<tag />
是完全有效的XML。就个人而言,我更喜欢自动关闭空标签。