php 生成xml 的四种方式

PHP中的生成XML文件的4种方法

【XMLWriter】
方法3:使用XMLWriter类创建XML文件
此方法在PHP 5.1.2后有效
另外,它可以输出多种编码的XML,但是输入只能是utf-8
PHP代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?PHP
$data_array=array(
array(
'title'=>'title1',
'content'=>'content1',
'pubdate'=>'2009-10-11',
),
array(
'title'=>'title2',
'content'=>'content2',
'pubdate'=>'2009-11-11',
)
);

// 属性数组
$attribute_array=array(
'title'=>array(
'size'=>1
)
);

$xml=new XMLWriter();
$xml->openUri("php://output");// 输出方式,也可以设置为某个xml文件地址,直接输出成文件
$xml->setIndentString(' ');
$xml->setIndent(true);

$xml->startDocument('1.0','utf-8');// 开始创建文件
// 根结点
$xml->startElement('article');

foreach($data_arrayas$data){
$xml->startElement('item');

if(is_array($data)){
foreach($dataas$key=>$row){
$xml->startElement($key);

if(isset($attribute_array[$key])&&is_array($attribute_array[$key])){
foreach($attribute_array[$key]as$akey=>$aval){// 设置属性值
$xml->writeAttribute($akey,$aval);
}

}

$xml->text($row);// 设置内容
$xml->endElement();// $key
}

}
$xml->endElement();// item
}

$xml->endElement();// article
$xml->endDocument();

$xml->flush();
?>

【SimpleXML】
方法4:使用SimpleXML创建XML文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?PHP
$data_array = array(
array(
'title' => 'title1',
'content' => 'content1',
'pubdate' => '2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2',
'pubdate' => '2009-11-11',
)
);
 
// 属性数组
$attribute_array = array(
'title' => array(
'size' => 1
)
);
 
$string = <<<XML
<?xml version='1.0' encoding='utf-8'?>
<article>
</article>
XML;
 
$xml = simplexml_load_string($string);
 
foreach ($data_array as $data) {
$item = $xml->addChild('item');
if (is_array($data)) {
foreach ($data as $key => $row) {
$node = $item->addChild($key, $row);
 
if (isset($attribute_array[$key]) && is_array($attribute_array[$key])) {
foreach ($attribute_array[$key] as $akey => $aval) { // 设置属性值
$node->addAttribute($akey, $aval);
}
}
}
}
}
echo $xml->asXML();
?>

本文地址:PHP中的生成XML文件的4种方法    文章出处:PHP源码阅读,PHP设计模式,PHP学习笔记-胖子的空间

转载请以链接形式注明原始出处和作者,谢绝不尊重版权者抄袭!

posted @ 2011-01-21 09:30  春哥也编程  阅读(2908)  评论(0编辑  收藏  举报