ispsh 发表于 2015-8-30 08:14:26

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学习笔记-胖子的空间  转载请以链接形式注明原始出处和作者,谢绝不尊重版权者抄袭!
页: [1]
查看完整版本: php 生成xml 的四种方式