這篇文章給大家分享的是有關(guān)PHP如何讀取XML格式文件的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
為城廂等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及城廂網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、城廂網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!具體如下:
books.xml文件:
Jack Herrington PHP Hacks O'Reilly Jack Herrington Podcasting Hacks O'Reilly
1.DOMDocument方法
load( 'books.xml' ); $books = $doc->getElementsByTagName( "book" ); foreach( $books as $book ) { $authors = $book->getElementsByTagName( "author" ); $author = $authors->item(0)->nodeValue; $publishers = $book->getElementsByTagName( "publisher" ); $publisher = $publishers->item(0)->nodeValue; $titles = $book->getElementsByTagName( "title" ); $title = $titles->item(0)->nodeValue; echo "$title - $author - $publisher\n"; echo "
"; } ?>
2.用 SAX 解析器讀取 XML:
3.用正則表達(dá)式解析 XML:
(.*?)\<\/book\>/s", $xml, $bookblocks ); foreach( $bookblocks[1] as $block ) { preg_match_all( "/\(.*?)\<\/author\>/", $block, $author ); preg_match_all( "/\ (.*?)\<\/title\>/", $block, $title ); preg_match_all( "/\ (.*?)\<\/publisher\>/", $block, $publisher ); echo( $title[1][0]." - ".$author[1][0]." - ".$publisher[1][0]."\n" ); } ?>
4.解析XML到數(shù)組
簡單的XML數(shù)據(jù) "; $parser = xml_parser_create(); //創(chuàng)建解析器 xml_parse_into_struct($parser, $data, $values, $index); //解析到數(shù)組 xml_parser_free($parser); //釋放資源 //顯示數(shù)組結(jié)構(gòu) echo "\n索引數(shù)組\n"; print_r($index); echo "\n數(shù)據(jù)數(shù)組\n"; print_r($values); ?>
5.檢查XML是否有效
"; //輸出錯(cuò)誤行,列及其錯(cuò)誤信息 $error_line = xml_get_current_line_number($xml_parser); $error_row = xml_get_current_column_number($xml_parser); $error_string = xml_error_string(xml_get_error_code($xml_parser)); $message = sprintf("[第%d行,%d列]:%s", $error_line, $error_row, $error_string); echo $message; } else { echo "該XML文檔是結(jié)構(gòu)良好的。"; } //關(guān)閉XML解析器指針,釋放資源 xml_parser_free($xml_parser); ?>
6.可用于精確的讀取XML
test.xml
100 123456 20040605 153020 1 1 010 北京 010 北京 0 0 15933626501 8 5618常年供應(yīng)苗木,品種有玉蘭、黃葉楊等。聯(lián)系人:張三,電話:1234567890。 100 9588
test.php:
-1) { try { //加載解析xml $xml = simplexml_load_string($file); if($xml) { //echo $this->result; //獲取節(jié)點(diǎn)值 $CONNECT_ID = $xml->CONNECT_ID; $MO_MESSAGE_ID = $xml->MO_MESSAGE_ID; $RECEIVE_DATE = $xml->RECEIVE_DATE; $RECEIVE_TIME = $xml->RECEIVE_TIME; $GATEWAY_ID = $xml->GATEWAY_ID; $VALID = $xml->VALID; $CITY_CODE = $xml->CITY_CODE; $CITY_NAME = $xml->CITY_NAME; $STATE_CODE = $xml->CITY_CODE; $STATE_NAME = $xml->STATE_NAME; $TP_PID = $xml->TP_PID; $TP_UDHI = $xml->TP_UDHI; $MSISDN = $xml->MSISDN; $MESSAGE_TYPE = $xml->MESSAGE_TYPE; $MESSAGE = $xml->MESSAGE;//短信 $LONG_CODE = $xml->LONG_CODE; $SERVICE_CODE = $xml->SERVICE_CODE; preg_match("/(561)\d{1,2}/", $MESSAGE, $code); switch($code[0]) { case 5618 : $myData[message] = $MESSAGE; break; default : $myData[] = '沒有短消息。'; break; } } else { echo "加載xml文件錯(cuò)誤。"; } } catch(exception $e){ print_r($e); } } else { echo "沒有該XML文件。"; } echo ""; print_r($myData); echo "
"; echo $myData[message]; ?>感謝各位的閱讀!關(guān)于“PHP如何讀取XML格式文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
分享名稱:PHP如何讀取XML格式文件-創(chuàng)新互聯(lián)
標(biāo)題URL:http://weahome.cn/article/pgpej.html