TP框架下 xml_encode的用法

时间:2022-03-10 11:59:35

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编码格式