【发布时间】:2016-10-17 15:42:00
【问题描述】:
我正在浏览各种文章,如何从 PHP 数组中生成 XML。
使用 SimpleXML 和循环的两篇文章开始工作。
我用过这个:
function array_to_xml( $data, $xml_data ) {
foreach( $data as $key => $value ) {
if( is_numeric($key) ){
$key = 'point id="'.$key.'"'; //dealing with <0/>..<n/> issues
}
if( is_array($value) ) {
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
它现在可以工作了。
重点是,我使用多维数组来发送文章列表。你可能猜到了,
<article id="sth">bla</article>
是一个东西。 问题是,这个函数在结束标记中包含 id,所以看起来像这样:
<article id="a-1-0">Example of Naming</article id="a-1-0">
这使得打开和阅读这些(也使用 SimpleXML)变得不可能。
有没有办法配置 SimpleXML 不在结束标签中创建 id?提前谢谢,任何帮助都很有价值。
编辑:
上面的代码片段处理的是点标签。同样的问题在那里,它们看起来像
<point id="0">[...]</point id="0">
【问题讨论】:
-
你不应该改用
addAttribute("$key", htmlspecialchars("$value"))吗?