日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHP讀取xml方法介紹

PHP我想大家都已經(jīng)很了解了,對(duì)于XML,如果您不是很了解的話,可以看看這篇文章,《XML基礎(chǔ):初學(xué)者必知》,下面介紹PHP讀取xml的幾種方法。

一,什么是xml,xml有什么用途

XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡(jiǎn)單易于掌握和使用。

XML的用途很多,可以用來存儲(chǔ)數(shù)據(jù),可以用來做數(shù)據(jù)交換,為很多種應(yīng)用軟件提示數(shù)據(jù)等等。

二,php讀取xml的方法

xml源文件

 
 
 
  1.  
  2.  
  3.  
  4. 張映 
  5.  
  6. 28 
  7.  
  8.  
  9. tank 
  10.  
  11. 28 
  12.  

1)DOMDocument讀取xml

 
 
 
  1. $doc = new DOMDocument();  
  2. $doc->load('person.xml'); //讀取xml文件  
  3. $humans = $doc->getElementsByTagName( "humans" ); //取得humans標(biāo)簽的對(duì)象數(shù)組  
  4. foreach( $humans as $human )  
  5. {  
  6. $names = $human->getElementsByTagName( "name" ); //取得name的標(biāo)簽的對(duì)象數(shù)組  
  7. $name = $names->item(0)->nodeValue; //取得node中的值,如   
  8. $sexs = $human->getElementsByTagName( "sex" );  
  9. $sex = $sexs->item(0)->nodeValue;  
  10. $olds = $human->getElementsByTagName( "old" );  
  11. $old = $olds->item(0)->nodeValue;  
  12. echo "$name - $sex - $old\n";  
  13. }  
  14. ?> 

2)simplexml讀取xml

 
 
 
  1. $xml_array=simplexml_load_file('person.xml'); //將XML中的數(shù)據(jù),讀取到數(shù)組對(duì)象中  
  2. foreach($xml_array as $tmp){  
  3. echo $tmp->name."-".$tmp->sex."-".$tmp->old."
    ";  
  4. }  
  5. ?> 

3)用php正則表達(dá)式來記取數(shù)據(jù)

 
 
 
  1. $xml = "";  
  2. $f = fopen('person.xml', 'r');  
  3. while( $data = fread( $f, 4096 ) ) {  
  4. $xml .= $data;  
  5. }  
  6. fclose( $f );  
  7. // 上面讀取數(shù)據(jù)  
  8. preg_match_all( "/\(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外層標(biāo)簽里面的內(nèi)容  
  9. foreach( $humans[1] as $k=>$human )  
  10. {  
  11. preg_match_all( "/\(.*?)\<\/name\>/", $human, $name ); //匹配出名字  
  12. preg_match_all( "/\(.*?)\<\/sex\>/", $human, $sex ); //匹配出性別  
  13. preg_match_all( "/\(.*?)\<\/old\>/", $human, $old ); //匹配出年齡  
  14. }  
  15. foreach($name[1] as $key=>$val){  
  16. echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."
    " ;  
  17. }  
  18. ?> 

4)xmlreader來讀取xml數(shù)據(jù)

 
 
 
  1. $reader = new XMLReader();  
  2. $reader->open('person.xml'); //讀取xml數(shù)據(jù)  
  3. $i=1;  
  4. while ($reader->read()) { //是否讀取  
  5. if ($reader->nodeType == XMLReader::TEXT) { //判斷node類型  
  6. if($i%3){  
  7. echo $reader->value; //取得node的值  
  8. }else{  
  9. echo $reader->value."
    " ;  
  10. }  
  11. $i++;  
  12. }  
  13. }  
  14. ?> 

三,小結(jié)

讀取xml的方法很多,簡(jiǎn)單舉幾個(gè)。上面四種方法都是可以把標(biāo)簽中的數(shù)據(jù)讀出來,張映.但是他們的測(cè)重點(diǎn)不同,前三種方法的讀取xml的function的設(shè)計(jì)重點(diǎn),是為了讀取標(biāo)簽中的值,相當(dāng)于jquery中的text()方法,而xmlreader呢他就不太一樣,他的重點(diǎn)不在讀取標(biāo)簽中的值,而讀取標(biāo)簽的屬性,把要傳送的數(shù)據(jù),都放在屬性中(不過我上面寫的那個(gè)方法還是取標(biāo)簽中的值,因?yàn)閤ml文件已經(jīng)給定了,我就不想在搞xml文件出來了)。

舉個(gè)例子解釋一下,

 
 
 
  1.  

xmlreader的設(shè)計(jì)重點(diǎn)是為了讀data里面的name sex old的值,而讀取的內(nèi)容就比較麻煩了。他相當(dāng)于jquery中attr(”);這個(gè)東西。

上面純屬個(gè)人看法,請(qǐng)大家指正。希望對(duì)大家有幫助。


本文題目:PHP讀取xml方法介紹
標(biāo)題URL:http://www.dlmjj.cn/article/cdopiee.html