久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP4和PHP5版本下解析XML文檔的操作方法實(shí)例分析

這篇文章主要介紹了PHP4和PHP5版本下解析XML文檔的操作方法,結(jié)合實(shí)例形式分析了php4與php5環(huán)境下解析xml文檔的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP4和PHP5版本下解析XML文檔的操作方法。分享給大家供大家參考,具體如下:

在PHP網(wǎng)站開(kāi)發(fā)與建設(shè)過(guò)程中,時(shí)常會(huì)碰到需要對(duì)XML文檔進(jìn)行解析,PHP4版本自帶了XML解析器(sax),PHP5版本增加了SimpleXML(基于dom)的XML擴(kuò)展,對(duì)XML的解析更是非常方便,今天和大家分享下在不同環(huán)境下對(duì)XML文檔進(jìn)行解析的方法。

XML文檔

<?xml version="1.0" encoding="gbk"?>
<LeapsoulXML>
<LeapsoulInfo>
<name>Leapsoul-PHP網(wǎng)站開(kāi)發(fā)</name>
<website>http://www.jb51.net</website>
<description>分享PHP網(wǎng)站開(kāi)發(fā)與建設(shè)的樂(lè)趣,教你如何建立網(wǎng)站</description>
<bloger>David</bloger>
<date>2009-05-13</date>
<qq>QQ:154130270</qq>
</LeapsoulInfo>
<LeapsoulInfo>
<name>Leapsoul-PHP網(wǎng)站開(kāi)發(fā)</name>
<website>http://www.jb51.net</website>
<description>分享PHP網(wǎng)站開(kāi)發(fā)與建設(shè)的樂(lè)趣,教你如何建立網(wǎng)站</description>
<bloger>David</bloger>
<date>2009-05-13</date>
<qq>QQ:154130270</qq>
</LeapsoulInfo>
</LeapsoulXML>

PHP5版本下SimpleXML的使用方法

$info=simplexml_load_file('leapsoulcn.xml');
print_r($info);
$name=$info->LeapsoulInfo[0]->name;
echo$name;
foreach($info->LeapsoulInfoas$LeapsoulInfo)
{
echo$LeapsoulInfo->name."<br />";
echo$LeapsoulInfo->website."<br />";
echo$LeapsoulInfo->description."<br />";
echo$LeapsoulInfo->bloger."<br />";
echo$LeapsoulInfo->date."<br />";
echo$LeapsoulInfo->qq."<br />";
}
foreach($info->xpath('//name')as$value){
echo$value.'<br />';
}
foreach($info->LeapsoulInfo[0]->children()as$value){
echo$value->getName();
echo$value.'<br />';
}
$info->LeapsoulInfo[0]->addChild('msn','MSN:davidfaithman@hotmail.com');
$info->asXML('leapsoulcn.xml');

代碼注釋

第1行:simplexml_load_file:讀取一個(gè)xml文檔作為操作對(duì)象,可以讀取本地或者遠(yuǎn)程xml文檔;simplexml_load_string:讀取一個(gè)xml字符串作為操作的對(duì)象
第3行:如果不清楚如何獲取某個(gè)節(jié)點(diǎn)的信息,可用print_r函數(shù)打印輸出查看具體的結(jié)構(gòu),simplexml解析返回的對(duì)象具有數(shù)組結(jié)構(gòu)。
第5~8行:以對(duì)象方式讀取某個(gè)XML文檔節(jié)點(diǎn)信息,讀取方式:句柄->節(jié)點(diǎn)元素名->子節(jié)點(diǎn),如果相同的節(jié)點(diǎn)元素有多個(gè),則以數(shù)組(array)方式讀取

注:由于simplexml解析返回的信息是UTF8格式的,如果網(wǎng)站使用的是GBK的,則需要轉(zhuǎn)碼,你可以使用iconv函數(shù)或者其他的utf8與gbk轉(zhuǎn)換函數(shù)進(jìn)行操作,如:$name = iconv('utf-8′,'gbk',$name);

第9~17行:以遍歷的形式,讀取所有元素下的子節(jié)點(diǎn)信息
第19~21行:simplexml的xpath函數(shù)是用來(lái)查詢(xún)XML數(shù)據(jù)的,比如這里查詢(xún)的是所有name節(jié)點(diǎn)的值
第23~26行:children函數(shù)是用來(lái)找尋某個(gè)特定節(jié)點(diǎn)下所有子節(jié)點(diǎn)的值。getName函數(shù)用來(lái)獲得每個(gè)子節(jié)點(diǎn)的元素名稱(chēng)
第28~29行:addChild函數(shù)用來(lái)在某個(gè)特定節(jié)點(diǎn)下增加一個(gè)子節(jié)點(diǎn);asXML函數(shù)對(duì)已做過(guò)改動(dòng)的XML文檔進(jìn)行保存

點(diǎn)擊查看更多SimpleXML函數(shù)說(shuō)明。

PHP4版本自帶的XML函數(shù)解析方法

function doStartElement($xmlParser,$name,$attr)
{
 //對(duì)開(kāi)始元素的處理
}
function doEndElement($xmlParser,$name)
{
 //對(duì)結(jié)尾元素的處理
}
function doStringData($xmlParser,$data)
{
 //對(duì)元素間的字符數(shù)據(jù)的處理
}
$xmlObj = xml_parser_create("UTF-8");
xml_set_element_handler($xmlObj,"doStartElement","doEndElement");
xml_set_character_data_handler($xmlObj,"doStringData");
xml_parse($xmlObj,file_get_contents("leapsoulcn.xml"));
xml_parser_free($xmlObj);

代碼注釋

第1~15行:定義開(kāi)始元素,結(jié)尾元素以及元素間字符數(shù)據(jù)的處理函數(shù)
第16行:建立一個(gè)新的XML解析器并返回可被其它XML函數(shù)使用的資源句柄,輸入默認(rèn)編碼方式為 “ISO-8859-1”。同時(shí),支持的編碼方式還有“UTF-8”和 “US-ASCII”,輸出數(shù)據(jù)編碼方式是和xml_parser_create函數(shù)處定義相一致。
第18行:建立起始和終止元素處理器
第20行:建立字符數(shù)據(jù)處理器,處理元素之間的相關(guān)數(shù)據(jù)
注:XML語(yǔ)法解析器不會(huì)加上或者去掉任何空格,空格的取舍將由開(kāi)發(fā)者自己決定。
第22行:?jiǎn)?dòng)解析器xml_parse函數(shù)第二個(gè)參數(shù)是字符型的,所以需要讀取相關(guān)的XML文檔信息,此處我用的是file_get_contents函數(shù),本地遠(yuǎn)程都可行,當(dāng)然你也可以使用fopen函數(shù)
第24行:XML解析完成后,釋放解析器占用的內(nèi)存

自帶的XML函數(shù)解析思路

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

下面小編就為大家分享一篇thinkphp3.2.0 setInc方法 源碼全面解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要介紹了php實(shí)現(xiàn)解析xml并生成sql語(yǔ)句的方法,涉及php針對(duì)xml格式文件的讀取、解析及sql字符串拼接相關(guān)操作技巧,需要的朋友可以參考下
這篇文章主要給大家介紹了如何通過(guò)源碼解析Laravel的依賴(lài)注入的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著
這篇文章主要介紹了tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了mongoDB數(shù)據(jù)庫(kù)及thinkPHP5連接、查詢(xún)MongoDB數(shù)據(jù)庫(kù)的基本操作技巧,需要的朋友可以參考下
thinkphp官網(wǎng)在去年的時(shí)候發(fā)布了tp的顛覆版本thinkphp5,tp5確實(shí)比之前的版本好用了很多,那么下面這篇文章就來(lái)給大家介紹關(guān)于在云虛擬主機(jī)部署thinkphp5項(xiàng)目的相關(guān)資料,需要的朋友可以
這篇文章主要介紹了Thinkphp5行為使用方法匯總,需要的朋友可以參考下
主站蜘蛛池模板: 久久久精品一区二区 | 少妇一级淫片aaaaaaaaa | 精品久久久久久红码专区 | 中文字幕av一区二区三区 | 日韩精品视频在线播放 | 中文字幕国产视频 | 亚洲精品在线免费观看视频 | 久久不射电影网 | 国产免费一区二区 | 天天干天天操天天看 | 久久大陆 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 久久久久久久久久久高潮一区二区 | 国产精品久久久久久久久大全 | 9999国产精品欧美久久久久久 | 欧美国产日韩在线观看 | 日日摸夜夜爽人人添av | 羞羞网站在线观看 | 国产999精品久久久 午夜天堂精品久久久久 | 久热久热| 成人一级片在线观看 | 99爱在线观看 | 亚洲第一视频网 | 亚洲淫视频| 欧美成人精品激情在线观看 | 97伦理电影网 | 欧美成年网站 | 九九福利| 黄色毛片一级 | 在线免费看黄 | 亚洲精品久久久久久久久久久久久 | 91av精品 | 成人在线视频观看 | 99热首页 | 免费成人高清在线视频 | 日韩国产欧美在线观看 | 97久久精品 | 九九爱这里只有精品 | 一级做a爰片久久毛片 | 亚洲色图网址 | 天天插天天干 |