php讀取XML的常見(jiàn)方法實(shí)例總結(jié)
本文實(shí)例講述了php讀取XML的常見(jiàn)方法。分享給大家供大家參考,具體如下:
xml源文件
<?xml version="1.0 encoding="UTF-8"?>
<humans>
<zhangying>
<name>張映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old>28</old>
</tank>
</humans>
1)DOMDocument讀取xml
<?php
$doc = new DOMDocument();
$doc->load('person.xml'); //讀取xml文件
$humans = $doc->getElementsByTagName( "humans" ); //取得humans標(biāo)簽的對(duì)象數(shù)組
foreach( $humans as $human )
{
$names = $human->getElementsByTagName( "name" ); //取得name的標(biāo)簽的對(duì)象數(shù)組
$name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
$sexs = $human->getElementsByTagName( "sex" );
$sex = $sexs->item(0)->nodeValue;
$olds = $human->getElementsByTagName( "old" );
$old = $olds->item(0)->nodeValue;
echo "$name - $sex - $old\n";
}
?>
2)simplexml讀取xml
<?php
$xml_array=simplexml_load_file('person.xml'); //將XML中的數(shù)據(jù),讀取到數(shù)組對(duì)象中
foreach($xml_array as $tmp){
echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
}
?>
3)用php正則表達(dá)式來(lái)讀取數(shù)據(jù)
<?php
$xml = "";
$f = fopen('person.xml', 'r');
while( $data = fread( $f, 4096 ) ) {
$xml .= $data;
}
fclose( $f );
// 上面讀取數(shù)據(jù)
preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外層標(biāo)簽里面的內(nèi)容
foreach( $humans[1] as $k=>$human )
{
preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字
preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性別
preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年齡
}
foreach($name[1] as $key=>$val){
echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
}
?>
4)xmlreader來(lái)讀取xml數(shù)據(jù)
<?php
$reader = new XMLReader();
$reader->open('person.xml'); //讀取xml數(shù)據(jù)
$i=1;
while ($reader->read()) { //是否讀取
if ($reader->nodeType == XMLReader::TEXT) { //判斷node類型
if($i%3) {
echo $reader->value; //取得node的值
} else {
echo $reader->value."<br>" ;
}
$i++;
}
}
?>
PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.jb51.net/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP針對(duì)XML文件操作技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP讀取XML值的代碼(推薦)
- 用PHP編寫(xiě)和讀取XML的幾種方式
- PHP中使用xmlreader讀取xml數(shù)據(jù)示例
- PHP讀取XML格式文件的方法總結(jié)
- DOM基礎(chǔ)及php讀取xml內(nèi)容操作的方法
- php通過(guò)正則表達(dá)式記取數(shù)據(jù)來(lái)讀取xml的方法
- php中使用DOM類讀取XML文件的實(shí)現(xiàn)代碼
- PHP簡(jiǎn)單讀取xml文件的方法示例
- PHP使用DOM和simplexml讀取xml文檔的方法示例
- PHP讀取XML文件的方法實(shí)例總結(jié)【DOMDocument及simplexml方法】
相關(guān)文章
php使用SAE原生Mail類實(shí)現(xiàn)各種類型郵件發(fā)送的方法
這篇文章主要介紹了php使用SAE原生Mail類實(shí)現(xiàn)各種類型郵件發(fā)送的方法,結(jié)合實(shí)例形式分析了SAE平臺(tái)解決郵件發(fā)送問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
CodeIgniter生成網(wǎng)站sitemap地圖的方法
用CodeIgniter只需要三步就可以生成網(wǎng)站sitemap地圖,方法很簡(jiǎn)單,大家可以參考一下2013-11-11
PHP基于閉包思想實(shí)現(xiàn)的BT(torrent)文件解析工具實(shí)例詳解
這篇文章主要介紹了PHP基于閉包思想實(shí)現(xiàn)的BT(torrent)文件解析工具,結(jié)合具體實(shí)例形式分析了php針對(duì)torrent文件的讀取與解析相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
PHP+apc+ajax實(shí)現(xiàn)的ajax_upload上傳進(jìn)度條代碼
這篇文章主要介紹了PHP+apc+ajax實(shí)現(xiàn)的ajax_upload上傳進(jìn)度條代碼,詳細(xì)分析了apc模塊的安裝、設(shè)置及ajax調(diào)用實(shí)現(xiàn)上傳進(jìn)度條功能,需要的朋友可以參考下2016-01-01
PHP聚合式迭代器接口IteratorAggregate用法分析
這篇文章主要介紹了PHP聚合式迭代器接口IteratorAggregate用法,結(jié)合實(shí)例形式分析了聚合式迭代器接口IteratorAggregate的概念、功能、定義及使用方法,需要的朋友可以參考下2017-12-12
php中常量DIRECTORY_SEPARATOR用法深入分析
這篇文章主要介紹了php中常量DIRECTORY_SEPARATOR用法深入分析,涉及針對(duì)Linux路徑分隔符不支持\的情況,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
PHP判斷訪客是否手機(jī)端(移動(dòng)端瀏覽器)訪問(wèn)的方法總結(jié)【4種方法】
這篇文章主要介紹了PHP判斷訪客是否手機(jī)端(移動(dòng)端瀏覽器)訪問(wèn)的方法,結(jié)合實(shí)例形式總結(jié)分析了php基于HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT、HTTP_ACCEPT等4種方法判斷訪客類型的相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
php中array_unshift()修改數(shù)組key注意事項(xiàng)分析
這篇文章主要介紹了php中array_unshift()修改數(shù)組key注意事項(xiàng),實(shí)例分析了array_unshift()函數(shù)在處理鍵值為數(shù)字類型時(shí)自動(dòng)轉(zhuǎn)換鍵值的情況,需要的朋友可以參考下2016-05-05

