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

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

這篇文章主要介紹了PHP4和PHP5版本下解析XML文檔的操作方法,結合實例形式分析了php4與php5環境下解析xml文檔的相關實現技巧與注意事項,需要的朋友可以參考下

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

在PHP網站開發與建設過程中,時常會碰到需要對XML文檔進行解析,PHP4版本自帶了XML解析器(sax),PHP5版本增加了SimpleXML(基于dom)的XML擴展,對XML的解析更是非常方便,今天和大家分享下在不同環境下對XML文檔進行解析的方法。

XML文檔

<?xml version="1.0" encoding="gbk"?>
<LeapsoulXML>
<LeapsoulInfo>
<name>Leapsoul-PHP網站開發</name>
<website>http://www.jb51.net</website>
<description>分享PHP網站開發與建設的樂趣,教你如何建立網站</description>
<bloger>David</bloger>
<date>2009-05-13</date>
<qq>QQ:154130270</qq>
</LeapsoulInfo>
<LeapsoulInfo>
<name>Leapsoul-PHP網站開發</name>
<website>http://www.jb51.net</website>
<description>分享PHP網站開發與建設的樂趣,教你如何建立網站</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:讀取一個xml文檔作為操作對象,可以讀取本地或者遠程xml文檔;simplexml_load_string:讀取一個xml字符串作為操作的對象
第3行:如果不清楚如何獲取某個節點的信息,可用print_r函數打印輸出查看具體的結構,simplexml解析返回的對象具有數組結構。
第5~8行:以對象方式讀取某個XML文檔節點信息,讀取方式:句柄->節點元素名->子節點,如果相同的節點元素有多個,則以數組(array)方式讀取

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

第9~17行:以遍歷的形式,讀取所有元素下的子節點信息
第19~21行:simplexml的xpath函數是用來查詢XML數據的,比如這里查詢的是所有name節點的值
第23~26行:children函數是用來找尋某個特定節點下所有子節點的值。getName函數用來獲得每個子節點的元素名稱
第28~29行:addChild函數用來在某個特定節點下增加一個子節點;asXML函數對已做過改動的XML文檔進行保存

點擊查看更多SimpleXML函數說明。

PHP4版本自帶的XML函數解析方法

function doStartElement($xmlParser,$name,$attr)
{
 //對開始元素的處理
}
function doEndElement($xmlParser,$name)
{
 //對結尾元素的處理
}
function doStringData($xmlParser,$data)
{
 //對元素間的字符數據的處理
}
$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行:定義開始元素,結尾元素以及元素間字符數據的處理函數
第16行:建立一個新的XML解析器并返回可被其它XML函數使用的資源句柄,輸入默認編碼方式為 “ISO-8859-1”。同時,支持的編碼方式還有“UTF-8”和 “US-ASCII”,輸出數據編碼方式是和xml_parser_create函數處定義相一致。
第18行:建立起始和終止元素處理器
第20行:建立字符數據處理器,處理元素之間的相關數據
注:XML語法解析器不會加上或者去掉任何空格,空格的取舍將由開發者自己決定。
第22行:啟動解析器xml_parse函數第二個參數是字符型的,所以需要讀取相關的XML文檔信息,此處我用的是file_get_contents函數,本地遠程都可行,當然你也可以使用fopen函數
第24行:XML解析完成后,釋放解析器占用的內存

自帶的XML函數解析思路

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

下面小編就為大家分享一篇thinkphp3.2.0 setInc方法 源碼全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了php實現解析xml并生成sql語句的方法,涉及php針對xml格式文件的讀取、解析及sql字符串拼接相關操作技巧,需要的朋友可以參考下
這篇文章主要給大家介紹了如何通過源碼解析Laravel的依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著
這篇文章主要介紹了tp5(thinkPHP5)操作mongoDB數據庫的方法,結合實例形式簡單分析了mongoDB數據庫及thinkPHP5連接、查詢MongoDB數據庫的基本操作技巧,需要的朋友可以參考下
thinkphp官網在去年的時候發布了tp的顛覆版本thinkphp5,tp5確實比之前的版本好用了很多,那么下面這篇文章就來給大家介紹關于在云虛擬主機部署thinkphp5項目的相關資料,需要的朋友可以
這篇文章主要介紹了Thinkphp5行為使用方法匯總,需要的朋友可以參考下
主站蜘蛛池模板: 欧美国产一区二区三区 | av电影一区二区 | 亚洲欧美一区二区三区情侣bbw | 亚洲一区二区三区久久久 | 夜夜摸天天操 | 综合五月 | 亚洲精品久久久 | 综合二区 | 精品欧美一区二区在线观看欧美熟 | 久久精品成人 | 日韩欧美一区二区三区免费观看 | 欧美色综合网 | 台湾佬成人网 | 亚洲精品欧美一区二区三区 | 成人在线免费观看视频 | 中文字幕在线观看日韩 | 日韩中文字幕区 | 97伦理电影网 | 日韩视频在线播放 | 欧美日韩亚洲在线 | 欧洲成人午夜免费大片 | 仙人掌旅馆在线观看 | www.日韩系列| 久久免费精品视频 | 久久久成人免费视频 | 国产成人免费 | 免费精品在线视频 | 欧美一级黄 | 久久不卡 | 久久久久国产精品一区三寸 | 成人一区二区三区在线观看 | 国产精品久久久久久久久久久久 | 日韩欧美三级 | 国产精品一区在线观看 | 99热在线免费 | 99热这里有精品 | 99久久精品免费看国产四区 | 日本三级在线 | 久久久精品影院 | 在线只有精品 | 成人毛片在线观看 |