多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 使用PHP生成XML文件的四種方法

使用PHP生成XML文件的四種方法

來源:程序員人生   發布時間:2014-01-14 09:18:19 閱讀次數:2559次

使用PHP生成XML文件的四種方法

<?xml version="1.0" encoding="utf-8"?>
<article>
<item>
<title size="1">title1</title>
<content>content1</content>
<pubdate>2009-10-11</pubdate>
</item>
<item>
<title size="1">title2</title>
<content>content2</content>
<pubdate>2009-11-11</pubdate>
</item>
</article>

【直接生成字符串】
方法1:使用純粹的PHP代碼生成字符串,并把這個字符串寫入一個以XML為后綴的文件。這是最原始的生成XML的方法,不過有效!
PHP代碼如下:

<?PHP
$data_array = array(
array(
'title' => 'title1',
'content' => 'content1',
'pubdate' => '2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2',
'pubdate' => '2009-11-11',
)
);
$title_size = 1;

$xml = "<?xml version="1.0" encoding="utf-8"?>";
$xml .= "<article>";

foreach ($data_array as $data) {
$xml .= create_item($data['title'], $title_size, $data['content'], $data['pubdate']);
}

$xml .= "</article>";

echo $xml;

// 創建XML單項
function create_item($title_data, $title_size, $content_data, $pubdate_data)
{
$item = "<item>";
$item .= "<title size="" . $title_size . "">" . $title_data . "</title>";
$item .= "<content>" . $content_data . "</content>";
$item .= " <pubdate>" . $pubdate_data . "</pubdate>";
$item .= "</item>";

return $item;
}

?>

【DomDocument】
方法2:使用DomDocument生成XML文件
創建節點使用createElement方法,
創建文本內容使用createTextNode方法,
添加子節點使用appendChild方法,
創建屬性使用createAttribute方法
PHP代碼如下:

<?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
?>

【XMLWriter】
方法3:使用XMLWriter類創建XML文件
此方法在PHP 5.1.2后有效
另外,它可以輸出多種編碼的XML,但是輸入只能是utf-8
PHP代碼如下:

<?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_array as $data) {
$xml->startElement('item');

if (is_array($data)) {
foreach ($data as $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文檔

<?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();
?>

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 最近新中文字幕大全高清 | www黄色网址 | 成人免费久久精品国产片久久影院 | jizzjizz黄大片| 中文字幕日韩精品中文区 | 欧美性最xxx | 国产三级精品三级在线专区1 | 最近中文字幕免费2019 | 久久99精品一级毛片 | 国产精品一区欧美日韩制服 | 最近中文字幕在线观看 | 1v1双性受整夜不拔bl | 中文字幕乱码在线观看 | 在线日韩麻豆一区 | 亚洲免费午夜视频 | 国产一区二区三区在线观看精品 | 欧美精品v欧洲高清 | 高清视频在线播放ww | 国产精品亚洲欧美一级久久精品 | 国产欧美久久精品 | 午夜黄色网 | 免费毛片网| 激情区小说区偷拍区图片区 | 日本一区二区在线不卡 | 在线成人小视频 | 久久天天躁狠狠躁夜夜中文字幕 | www.日本xxx| 一级aaaaaa毛片免费同男同女 | 蜜中蜜3动漫无修在线播放 免费 黄 色 人成 视频 | 成人午夜大片免费视频77777 | 午夜三级理论在线观看视频 | 黑人双渗透 | 亚洲高清在线天堂精品 | 国产人成精品午夜在线观看 | 美国一级黄色毛片 | 国产精品一区在线麻豆 | 亚洲成a人一区二区三区 | 高清国产性色视频在线 | 日韩欧美国产亚洲 | a天堂视频 | free性欧美极度另类3d |