您的位置:首页 > 编程语言 > PHP开发

PHP生成xml的方法

2016-04-30 21:34 686 查看
使用DomDocument生成XML文件,创建节点使用createElement方法,创建文本内容使用createTextNode方法,添加子节点使用appendChild方法,创建属性使用createAttribute方法

复制代码 代码如下:

使用DomDocument生成XML文件,创建节点使用createElement方法,创建文本内容使用createTextNode方法,添加子节点使用appendChild方法,创建属性使用createAttribute方法
复制代码 代码如下:

<?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文档并设置XML版本和编码。。
$dom=new DomDocument('1.0', 'utf-8');
//  创建根节点
$article = $dom->createElement('article');
$dom->appendchild($article);
foreach ($data_array as $data) {
$item = $dom->createElement('item');
$article->appendchild($item);
create_item($dom, $item, $data, $attribute_array);
}
echo $dom->saveXML();
function create_item($dom, $item, $data, $attribute) {
if (is_array($data)) {
foreach ($data as $key => $val) {
//  创建元素
$$key = $dom->createElement($key);
$item->appendchild($$key);
//  创建元素值
$text = $dom->createTextNode($val);
$$key->appendchild($text);
if (isset($attribute[$key])) {
//  如果此字段存在相关属性需要设置
foreach ($attribute[$key] as $akey => $row) {
//  创建属性节点
$$akey = $dom->createAttribute($akey);
$$key->appendchild($$akey);
// 创建属性值节点
$aval = $dom->createTextNode($row);
$$akey->appendChild($aval);
}
}   //  end if
}
}   //  end if
}   //  end function
?>


<?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文档并设置XML版本和编码。。

$dom=new DomDocument('1.0', 'utf-8');

// 创建根节点

$article = $dom->createElement('article');

$dom->appendchild($article);

foreach ($data_array as $data) {

$item = $dom->createElement('item');

$article->appendchild($item);

create_item($dom, $item, $data, $attribute_array);

}

echo $dom->saveXML();

function create_item($dom, $item, $data, $attribute) {

if (is_array($data)) {

foreach ($data as $key => $val) {

// 创建元素

$$key = $dom->createElement($key);

$item->appendchild($$key);

// 创建元素值

$text = $dom->createTextNode($val);

$$key->appendchild($text);

if (isset($attribute[$key])) {

// 如果此字段存在相关属性需要设置

foreach ($attribute[$key] as $akey => $row) {

// 创建属性节点

$$akey = $dom->createAttribute($akey);

$$key->appendchild($$akey);

// 创建属性值节点

$aval = $dom->createTextNode($row);

$$akey->appendChild($aval);

}

} // end if

}

} // end if

} // end function

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: