- 相關(guān)推薦
PHP如何使用DOM和simplexml讀取xml文檔
導(dǎo)語:PHP如何使用DOM和simplexml讀取xml文檔呢?具體實(shí)現(xiàn)代碼請閱讀以下內(nèi)容,更多詳情請關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)。
用DOM代碼實(shí)現(xiàn):
DOM讀取xml文檔步驟:1、創(chuàng)建DOM對象——》2、載入DOM文檔內(nèi)容——》3、截取要讀取內(nèi)容所在的標(biāo)簽——》獲得要讀取的內(nèi)容。
header('Content-type:text/html;charset=utf-8');
$arr=array();
$dom = new DOMDocument();//創(chuàng)建DOM對象
$dom->load('./books.xml');//載入xml文檔
print_r($dom);
echo '
';
$dom = $dom->getElementsByTagName('book');//截取標(biāo)簽
for($i=0;$i<$dom->length;$i++){
if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){
$arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'
';//獲取內(nèi)容
}
}
print_r($arr);
使用 getElementsByTagName 和 childNodes 后返回的都是對象,所以它們后面必須使用 item(int),哪怕它們返回的對象里面只包含一個(gè)項(xiàng)目,也必須用item(0)來指定,否則就會(huì)出錯(cuò)。
用simplexml代碼實(shí)現(xiàn):
$simxml = simplexml_load_file('./books.xml');
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
if($v->author=='金庸'){
$arr[] = (string)$v->title;
}
}
print_r($arr);
使用 simplexml_load_file 后返回的是對象,該對象里的項(xiàng)目既有對象又有數(shù)組,不管是對象還是數(shù)組,要循環(huán)里面的內(nèi)容都可以用 foreach。該實(shí)例最后獲取的內(nèi)容 $v->title 其實(shí)是個(gè)對象,所以要用 string 轉(zhuǎn)化為字符串。
【PHP如何使用DOM和simplexml讀取xml文檔】相關(guān)文章:
php如何基于dom實(shí)現(xiàn)圖書xml格式數(shù)據(jù)08-08
php如何使用fgetcsv讀取csv文件出現(xiàn)亂碼05-01
php解析XML文檔屬性并編輯的代碼04-12
php數(shù)組基于dom實(shí)現(xiàn)轉(zhuǎn)換xml格式數(shù)據(jù)03-06
PHP文件寫入和讀取教程08-06
php使用fgetcsv讀取csv文件出現(xiàn)亂碼03-05
如何使用PHP框架01-21