下面給大家普及一篇關(guān)于php生成xml實(shí)例與基礎(chǔ)知識(shí)文章,這個(gè)操作很簡(jiǎn)單我們介紹了xml是什么及xml特點(diǎn),希望例子對(duì)各位有幫助.
1、XML,Extensible Markup Language(可擴(kuò)展標(biāo)記語(yǔ)言),是一種可以創(chuàng)建自定義標(biāo)記符號(hào)(Tags)的標(biāo)記語(yǔ)言,是用于表示結(jié)構(gòu)化信息的一種標(biāo)準(zhǔn)文本格式,作為下一代數(shù)據(jù)交換格式的標(biāo)準(zhǔn),和HTML一樣,XML基于標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language,SGML),文檔結(jié)構(gòu),層次非常清晰,xml文檔只是存儲(chǔ)了數(shù)據(jù),是很有規(guī)律的結(jié)構(gòu)化文檔,但沒(méi)有定義如何顯示這些數(shù)據(jù),文檔結(jié)構(gòu)可稱(chēng)為“文檔樹(shù)”,主干是頂層的父元素,分支和葉是子元素.
xml聲明,表示文檔遵循的是xml的1.0版的規(guī)范.
2、xml特點(diǎn):
可擴(kuò)展性,xml允許使用者創(chuàng)建和使用他們自己的標(biāo)記而不是HTML的有限標(biāo)簽,企業(yè)可以用XML為電子商務(wù)和供應(yīng)鏈集成等應(yīng)用定義自己的標(biāo)記語(yǔ)言,甚至特定行業(yè)一起來(lái)定義該領(lǐng)域的特殊標(biāo)記語(yǔ)言,作為該領(lǐng)域信息共享與數(shù)據(jù)交換的基礎(chǔ),不過(guò),這些自定義標(biāo)記僅僅是用來(lái)識(shí)別信息數(shù)據(jù)的,它本身并不傳達(dá)信息.
靈活性,xml更像一個(gè)小型的數(shù)據(jù)庫(kù),提供了一種結(jié)構(gòu)化的數(shù)據(jù)表示方式,使得用戶(hù)界面分離于結(jié)構(gòu)化數(shù)據(jù).
自描述性,xml表示數(shù)據(jù)的方式真正做到了獨(dú)立于應(yīng)用系統(tǒng),并且數(shù)據(jù)能夠重用,xml文檔被看作文檔的數(shù)據(jù)庫(kù)化和數(shù)據(jù)的文檔化.
3、xml與html區(qū)別
html是一個(gè)定型的標(biāo)記語(yǔ)言,它用固有的標(biāo)記來(lái)描述,顯示網(wǎng)頁(yè)內(nèi)容,xml沒(méi)有固定的標(biāo)記,不能描述網(wǎng)頁(yè)具體的外觀、內(nèi)容,它只是描述內(nèi)容的數(shù)據(jù)形式和結(jié)構(gòu),網(wǎng)頁(yè)將數(shù)據(jù)和顯示混在一起,而xml則將數(shù)據(jù)和顯示分開(kāi).
xml文檔注意事項(xiàng)
所有標(biāo)記都必須有一個(gè)相應(yīng)的結(jié)束標(biāo)記、標(biāo)記都必須合理嵌套、標(biāo)記區(qū)分大小寫(xiě)、標(biāo)記的屬性必須用“”括起來(lái).
標(biāo)記命名規(guī)則:名字中可以包含字母、數(shù)字、下劃線以及其他字母,不能以數(shù)字或下劃線開(kāi)頭、名字不能以xml(或XML或Xml…)開(kāi)頭、名字中不能包含空格、名字中也不能使用“.”,“.”被用來(lái)連接元素和屬性.
提示:支持漢字作為標(biāo)記名,要注意編碼,文件編碼與xml聲明的編碼要一致.
在 XML 中,有 5 個(gè)預(yù)定義的實(shí)體引用:
- < < 小于
- >> 大于
- & & 和號(hào)
- ' ' 單引號(hào)
- " " 雙引號(hào)
XML文件生成操作簡(jiǎn)單示例,代碼如下:
- <?php
- header("Content-Type:application/xml;charset=utf-8");
- header("Cache-Control: no-cache,must-revalidate");
- header("Expries: Fri, 14 Mar 1980 20:00:00 GMT");
- header("Last-Modified: ".date('r'));
- header("Prama: no-cache");
- $xml='<?xml version="1.0" encoding="utf-8"?>
- <rss></rss>';
- $sxe=new SimpleXMLElement($xml);
- if(method_exists($sxe,'addChild')){
- $sxe->addAttribute('version','2.0');
- $channel=$sxe->addChild('channel');
- $channel->addChild("title","服飾批發(fā)");
- for($i=0;$i<5;$i++){
- $item=$channel->addChild('item');
- $item->addChild('title','商品'.$i);
- $item->addChild('link',$i);
- }
- echo $sxe->asXML();
- }else{
- $dom=new DOMDocument("1.0");//生成一個(gè)新的DOM對(duì)象
- $rss=$dom->createElement("rss");//生成rss元素
- $rss->setAttribute("version","2.0");
- $rss=$dom->appendChild($rss);
- $channel=$dom->createElement("channel");
- $channel=$rss->appendChild($channel);
- $title=$dom->createElement('title');
- $text=$dom->createTextNode("服飾批發(fā)");
- $title->appendChild($text);
- $title=$channel->appendChild($title);
- for($i=0;$i<5;$i++){
- $item=$dom->createElement("item");
- $item=$channel->appendChild($item);
- $title=$dom->createElement("title");
- $text=$dom->createTextNode("商品".$i);
- $title->appendChild($text);
- $title=$item->appendChild($title);
- $link=$dom->createElement("link");
- $text=$dom->createTextNode("$i");
- $link->appendChild($text);
- $link=$item->appendChild($link);
- }//開(kāi)源代碼Vevb.com
- echo $dom->saveXML();
- //$dom->save("nnn.xml");
- }
- ?>
新聞熱點(diǎn)
疑難解答