php的XML文件解釋類(lèi)應(yīng)用實(shí)例
本文實(shí)例講述了php的XML文件解釋類(lèi)及其用法,是非常實(shí)用的技巧。分享給大家供大家參考。具體如下:
XMLParser.class.php類(lèi)文件如下:
<?php
/** XML 文件分析類(lèi)
* Date: 2013-02-01
* Author: fdipzone
* Ver: 1.0
*
* func:
* loadXmlFile($xmlfile) 讀入xml文件輸出Array
* loadXmlString($xmlstring) 讀入xmlstring 輸出Array
*/
class XMLParser{
/** 讀取xml文件
* @param String $xmlfile
* @return Array
*/
public function loadXmlFile($xmlfile){
// get xmlfile content
$xmlstring = file_exists($xmlfile)? file_get_contents($xmlfile) : '';
// parser xml
list($flag, $data) = $this->parser($xmlstring);
return $this->response($flag, $data);
}
/** 讀取xmlstring
* @param String $xmlstring
* @return Array
*/
public function loadXmlString($xmlstring){
// parser xml
list($flag, $data) = $this->parser($xmlstring);
return $this->response($flag, $data);
}
/** 解釋xml內(nèi)容
* @param String $xmlstring
* @return Array
*/
private function parser($xmlstring){
$flag = false;
$data = array();
// check xml format
if($this->checkXmlFormat($xmlstring)){
$flag = true;
// xml to object
$data = simpleXML_load_string($xmlstring, 'SimpleXMLElement', LIBXML_NOCDATA);
// object to array
$this->objectToArray($data);
}
return array($flag, $data);
}
/** 檢查xml格式是否正確
* @param String $xmlstring
* @return boolean
*/
private function checkXmlFormat($xmlstring){
if($xmlstring==''){
return false;
}
$xml_parser_obj = xml_parser_create();
if(xml_parse_into_struct($xml_parser_obj, $xmlstring, $vals, $indexs)===1){ // 1:success 0:fail
return true;
}else{
return false;
}
}
/** object 轉(zhuǎn) Array
* @param object $object
* @return Array
*/
private function objectToArray(&$object){
$object = (array)$object;
foreach($object as $key => $value){
if($value==''){
$object[$key] = "";
}else{
if(is_object($value) || is_array($value)){
$this->objectToArray($value);
$object[$key] = $value;
}
}
}
}
/** 輸出返回
* @param boolean $flag true:false
* @param Array $data 轉(zhuǎn)換后的數(shù)據(jù)
* @return Array
*/
private function response($flag=false, $data=array()){
return array($flag, $data);
}
}
?>
Demo示例程序如下:
<?php
require "XMLParser.class.php";
$xmlfile = 'file.xml';
$xmlstring = '<?xml version="1.0" encoding="utf-8"?>
<xmlroot>
<status>1000</status>
<info></info>
<result><id>100</id>
<name>fdipzone</name>
<gender>1</gender>
<age>28</age>
</result>
</xmlroot>';
echo '<pre>';
$xml_parser = new XMLParser();
echo "response xmlfile\r\n";
list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile);
if($flag){
print_r($xmldata);
}
echo "response xmlstring\r\n";
list($flag, $xmldata) = $xml_parser->loadXmlString($xmlstring);
if($flag){
print_r($xmldata);
}
echo '</pre>';
?>
關(guān)于PHP的XML預(yù)定義常量可參考官方文檔:
http://www.php.net/manual/en/libxml.constants.php
希望本文所述對(duì)大家PHP程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
- PHP簡(jiǎn)單讀取xml文件的方法示例
- php添加數(shù)據(jù)到xml文件的簡(jiǎn)單例子
- php使用simplexml_load_file加載XML文件并顯示XML的方法
- PHP中使用SimpleXML檢查XML文件結(jié)構(gòu)實(shí)例
- php獲取本地圖片文件并生成xml文件輸出具體思路
- PHP中3種生成XML文件方法的速度效率比較
- PHP中的生成XML文件的4種方法分享
- php中使用DOM類(lèi)讀取XML文件的實(shí)現(xiàn)代碼
- php XPath對(duì)XML文件查找及修改實(shí)現(xiàn)代碼
- 生成ubuntu自動(dòng)切換壁紙xml文件的php代碼
- 使用PHP DOM-XML創(chuàng)建和解析XML文件
- php對(duì)xml文件的增刪改查操作實(shí)現(xiàn)方法分析
相關(guān)文章
php常用數(shù)組array函數(shù)實(shí)例總結(jié)【賦值,拆分,合并,計(jì)算,添加,刪除,查詢(xún),判斷,排序】
這篇文章主要介紹了php常用數(shù)組array函數(shù),結(jié)合實(shí)例形式總結(jié)分析了php常用的數(shù)組操作函數(shù),包括數(shù)組的賦值、拆分、合并、計(jì)算、添加、刪除、查詢(xún)、判斷、排序等,需要的朋友可以參考下2016-12-12
linux php mysql數(shù)據(jù)庫(kù)備份實(shí)現(xiàn)代碼
想在PHP后臺(tái)管理直接能夠備份數(shù)據(jù)庫(kù),于是想呀想,一直沒(méi)有什么思路,一開(kāi)始是考慮用php來(lái)訪問(wèn)服務(wù)器安裝mysql的目錄,比如 /usr/local/mysql/data目錄,直接把下面對(duì)應(yīng)的文件進(jìn)行備份2009-03-03
PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法,結(jié)合實(shí)例形式分析了php針對(duì)xml格式數(shù)據(jù)的構(gòu)建及文件讀寫(xiě)相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
php數(shù)據(jù)流中第K大元素的計(jì)算方法及代碼分析
在本篇文章里小編給大家整理了一篇關(guān)于php數(shù)據(jù)流中第K大元素的計(jì)算方法及代碼分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-07-07
PHP的Socket網(wǎng)絡(luò)編程入門(mén)指引
這篇文章主要介紹了PHP的Socket網(wǎng)絡(luò)編程入門(mén)指引,是PHP入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08
php正則表達(dá)式基本知識(shí)與應(yīng)用詳解【經(jīng)典教程】
這篇文章主要介紹了php正則表達(dá)式基本知識(shí)與應(yīng)用,詳細(xì)講述了php正則表達(dá)式的基本概念、知識(shí)點(diǎn)并結(jié)合實(shí)例形式分析了php正則表達(dá)式的使用技巧,需要的朋友可以參考下2017-04-04

