php怎么解析xml,使用PHP快速解析复杂的XML文件
使用PHP操作XML時,一般使用SimpleXML,但是在解析一些比較復雜的XML文件里, SimpleXML用起來就很麻煩了,比如下面這樣的XML:
demo.xml
我強烈推薦使用phpQuery來解析XML文件,phpQuery類似于jquery,里面的選擇器是模仿jquery所開發出來的。
phpQuery下載地址:http://code.google.com/p/phpquery/
第一步:新建一個PHP文件,引入phpQuery.php文件,代碼如下:
header ( "Content-Type: text/html; charset=utf-8" );
error_reporting (E_ALL);
set_time_limit(0);
date_default_timezone_set ( "Asia/Shanghai" );
include 'phpQuery.php';
phpQuery::newDocumentFile("demo.xml");
獲得Location下的節點信息
$_Location = pq('HotelShoppingResponse > Location'); ????? //獲得節點
echo $_Location->find('Id')->html();????????? //輸出000000
echo $_Location->find('Name')->html();??? ????? //輸出北京
echo $_Location->find('Type')->attr("code");? //輸出CITY
其他同級的節點相同方法就可以獲得
獲得Hotel下的節點信息
$_Hotel = pq('HotelShoppingResponse > Hotel'); //獲得節點
echo $_Hotel = pq('HotelShoppingResponse > Hotel');?? ????? ????? //獲得節點
echo $_Hotel->attr('id'); ????? ????? ????? ????? ????? ????? ????? ????? //輸出12888888
echo $_Hotel->attr('name');? ????? ????? ????? ????? ????? ????? ????? ????? //輸出Hotel Kapok Beijing
echo $_Hotel->attr('chainCode');???? ????? ????? ????? ????? ????? ????? ????? //輸出EP
echo $_Hotel->attr('starRating');???? ????? ????? ????? ????? ????? ????? //輸出4
echo $_Hotel->attr('phoneNumber');??? ????? ????? ????? ????? ????? ????? //輸出868888888
echo $_Hotel->find("Address")->find('Street1')->html();? ????? //輸出Donghuamen Street
echo $_Hotel->find("Address")->find('City')->html(); ????? ????? //輸出Beijing
echo $_Hotel->find("Address")->find('PostalCode')->html(); ??//輸出100006
echo $_Hotel->find("Address")->find('Country')->html();????? //輸出CN
echo $_Hotel->find("TotalCostOfRooms")->html();??????? ???//輸出377.75
echo $_Hotel->find("TotalCostOfRooms")->attr("currency"); ??//輸出CNY
通過以上方法,就可以很快速的操作XML文件,可以節約大量的時間。
下面為PHP文件代碼:
在JAVA中一般使用dom4j來操作XML,我推薦使用joox包,操作方式類似于phpQuery,還是開源軟件,有興趣還可以自己去擴展選擇器或操作XML的功能。
下載地址:http://code.google.com/p/joox/
總結
以上是生活随笔為你收集整理的php怎么解析xml,使用PHP快速解析复杂的XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发之使用 infer静态代码扫描
- 下一篇: php视频上传教程,php上传视频的代码