TP框架下的公共函数文件下 提供了一个 数组转化为xml的函数 叫做 xml_encode
函数声明,和相关参数的含义,如下
/** * XML编码 * @param mixed $data 数据 * @param string $root 根节点名 * @param string $item 数字索引的子节点名 * @param string $attr 根节点属性 * @param string $id 数字索引子节点key转换的属性名 * @param string $encoding 数据编码 * @return string */ function xml_encode($data, $root='think', $item='item', $attr='', $id='id', $encoding='utf-8')
用法:
$data = ('a','b','c','d'); echo xml_encode($data)
输出结果:
< think>< item id="0">a< /item>< item id="1">b< /item>< item id="2">c< /item>< item id="3">d< /item>< /think>
默认根节点名字是think,子节点名字是item,(如果想修改根节点,和子节点的名字,可以传参给第二,和第三个参数,如果array数组中某个key是数字,则会写到节点的属性中。
这里有的问题是,如果数组中有自定义的key那么属性会是什么.
例如
$data = array('a','key1' => 'value1','b','c','key2' => 'value2'); echo xml_encode($data);
结果
< think>< item id="0">a< /item>< key1 id="0">value1< /key1>< item id="1">b< /item>< item id="2">c< /item>< key2 id="2">value2< / key2>< /think>
可以看出来,如果是自定义的key,则属性会使用,之前最后一个数字key的 索引 作为属性值。
第五个参数 是设置 根节点的属性 根节点的属性可以传入数组形式,在内部会转化为 以空格分隔的字符串。
第六个参数 是设置 属性名 默认属性名是 id
第七个参数 是设置xml编码格式