php 產生xml 的四種方式

來源:互聯網
上載者:User

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學習筆記-胖子的空間

轉載請以連結形式註明原始出處和作者,謝絕不尊重著作權者抄襲!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.