成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

xml 解析類

瀏覽:298日期:2022-06-03 15:44:37

xml 解析類 <?php
ob_start();
/*                                                              
* Copyright (c) 2003 NightKids  <weidewang@magus-soft.com>                     
* All rights reserved.                                                        
*
* Redistribution and use in source and binary forms, with or without         
* modification, are permitted provided that the following conditions         
* are met:                                                                    
* 1. Redistributions of source code must retain the above copyright         
*    notice, this list of conditions and the following disclaimer.            
* 2. Redistributions in binary form must reproduce the above copyright        
*    notice, this list of conditions and the following disclaimer in the      
*    documentation and/or other materials provided with the distribution.   
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS"" AND      
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE      
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE   
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS   
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)      
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY  
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF      
* SUCH DAMAGE.
  */                    
################################
/*
Last modify 2003-10-24  10:41:11
XML 分析類.上面是實用的例子,返回結果是一個二維數組 格式 $Result[x][xml標記]=xml標記值;
這里沒有從 http 中取數據,要用另外一個類取數據.
*/
class z99ParseXML{
#----------------------
   var $ParseHandle=NULL; //解析器指針
   var $CharSet="utf-8";//編碼方式
   var $Tag=NULL;
   var $Attrib=array();
   var $DataString=NULL;
   var $XMLData=NULL;

   var $debug = false;

   var $ReturnData=array();

   var $CurrentTag=NULL;
   var $OpenTag=array();
   var $CloseTag=array();

   //var $NeedParseArray=array();
   var $NeedParseBlockArray=array();
   var $TagSum=0;

   var $CurrentTagA=NULL;

   var $TmpData=NULL;
#----------------------
   function z99ParseXML(){
      $this->ParseHandle = xml_parser_create($this->CharSet);      
      if(!$this->ParseHandle){ echo "不能創建 XML 解析器.<br />";
         return false;
      }
   }#Function 分析XML End.
   /*
   function SetNeedParse($NeedParse){
      $this->NeedParseArray=$NeedParse;
   }*/
   function SetNeedParseBlock($NeedParseBlock){
      $this->NeedParseBlockArray=$NeedParseBlock;
   }
   function SetXMLData($XMLData=NULL){//設置XML數據
      if($XMLData==""){ if($this->debug) echo "XML 數據為空.<br />";exit();
         return false;
      }
      $this->XMLData=$XMLData;
   }#Function SetXMLData End.

   function GetXMLData(){
      if($this->XMLData==""){   if($this->debug) echo "還沒有設置 XML 數據.<br />";exit();
         return false;
      }
      return $this->XMLData;
   }#Function getXMLData End.   

   function ParseXMLData(){   
      if($this->debug && !$this->ParseHandle) echo "不能創建 XML 解析器.<br />";   
      //if(!is_array($this->NeedParseArray) && $this->debug) echo "請設置要分析的標記.<br />";
        $XMLData = $this->GetXMLData();
        $this->XMLData = preg_replace("/<\?xml(.*)?\?".">/", "", $XMLData);
        if( trim($this->XMLData)=="" ){ if($this->debug) echo "XML 數據錯誤.<br />";
           return false;
          }
          xml_parser_set_option($this->ParseHandle, XML_OPTION_CASE_FOLDING, false);
      xml_parser_set_option($this->ParseHandle, XML_OPTION_TARGET_ENCODING, $this->CharSet);
      xml_set_object($this->ParseHandle, $this);
      xml_set_element_handler($this->ParseHandle, "StartTag", "EndTag");
      xml_set_character_data_handler($this->ParseHandle, "CData");
      if (!xml_parse($this->ParseHandle, $this->XMLData)) {
         if($this->debug)
             die(sprintf("XML error: %s at line %d",
                xml_error_string(xml_get_error_code($this->ParseHandle)),
                xml_get_current_line_number($this->ParseHandle)));
            return false;
        }
   }#Function 解析XML數據 End.

   function StartTag($ParseHandle,$Tag,$Attrib){#解析器句柄,標記名稱,標記屬性(數組)      
      $this->OpenTag[$Tag];      
   }#Function 起始標記 End.

   function CData($ParseHandle=NULL,$DataString=NULL){   
      $this->TmpData=$DataString;
   }#Function 取數據 End.

   function EndTag($ParseHandle,$Tag){
      $NeedParse=$this->NeedParseBlockArray;      
      $this->CloseTag[$Tag];
      $this->CurrentTag=$Tag;
      $TmpData=$this->TmpData;
      $DataLen=strlen(trim($TmpData));
      if( $DataLen !=0 ){
         $this->ReturnData[$this->TagSum][$Tag]=$TmpData;
      }
      if(array_search($Tag,$NeedParse)!==false) $this->TagSum++;      
   }#Function 結束標記 End.      
   function Result(){
      $aTmp=$this->ReturnData;
      return $aTmp;
   }
#----------------------
}#Class 分析XML End.
#===========================
# 使用實例
#
#===========================
/*
$XMLData= <<< EOD
<U-MAX>
    <ValidError>
        <ValidErrorCode>ErrorCode</ValidErrorCode>
        <ValidErrorInfo>The "ProductCode" element has an invalid value according to its data type. An error occurred at(35, 29).</ValidErrorInfo>
      <ErrMSG>Eraer23 asdf SGs</ErrMSG>
    </ValidError>
   <ValidError>
        <ValidErrorCode>ErrorCode1</ValidErrorCode>
        <ValidErrorInfo>111The "ProductCode" element has an invalid value according to its data type. An error occurred at(35, 29).</ValidErrorInfo>
      <ErrMSG>Errf aeaa SGs</ErrMSG>
    </ValidError>
   <ValidError>
        <ValidErrorCode>ErrorCo234</ValidErrorCode>
        <ValidErrorInfo>111The "ProductCode" element has an invalid value according to its data type. An error occurred at(35, 29).</ValidErrorInfo>
      <ErrMSG>Errfae asdfSGs</ErrMSG>
    </ValidError>
   <ValidError>
        <ValidErrorCode>Erasdfasode1</ValidErrorCode>
        <ValidErrorInfo>11fasd asdas a sd29).</ValidErrorInfo>
      <ErrMSG>Eafe3aeaSGs</ErrMSG>
    </ValidError>
</U-MAX>
EOD;
#===========================   
   //$NeedParse=array("ValidErrorCode","ValidErrorInfo");
   $NeedParseBlock=array("ValidError","Fuck");
   $xx = new z99ParseXML();   
   $xx->debug=true;   
   //$xx->SetNeedParse($NeedParse);//設置需要分析的標記
   $xx->SetNeedParseBlock($NeedParseBlock);//設置需要分析的標記塊 比如上面的塊是 ValidError
   $xx->SetXMLData($XMLData);
   $xx->GetXMLData();   
   $xx->ParseXMLData();   //如果 === false 說明分析數據時發生錯誤

   $aa=$xx->Result();
   echo $aa[0][ValidErrorCode]."<br>";
   echo $aa[0][ErrMSG]."<br>";
   echo $aa[0][ValidErrorInfo]."<br>";
   echo "<br>";
   echo $aa[1][ValidErrorCode]."<br>";
   echo $aa[1][ErrMSG]."<br>";
   echo $aa[1][ValidErrorInfo]."<br>";
   for($i=0;$i<=count($aa)-1;$i++){
      //echo $aa[$i][ValidErrorCode];
      //echo $aa[$i][ValidErrorInfo]."<br>";
   }   
#===========================
*/
ob_end_flush();
?>
標簽: XML/RSS
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久另类ts人妖一区二区| 在线电影欧美成精品| 日本精品裸体写真集在线观看| 亚洲欧洲精品成人久久奇米网| 不卡的av电影| 欧美日韩综合一区| 日韩专区在线视频| 亚洲一区三区视频在线观看| 亚洲欧美日韩国产综合在线| 欧美国产一区二区三区激情无套| 日韩欧美国产电影| 国产一区二区三区在线观看免费| 色婷婷国产精品久久包臀 | 日韩成人一级大片| 国产精品久久波多野结衣| 亚洲欧美经典视频| 一本久道久久综合狠狠爱| 亚洲美女视频在线| 亚洲精品系列| 成人欧美一区二区三区视频网页| 欧美国产三区| 中日韩免费视频中文字幕| 欧美大片一区| 精品国产3级a| 高清国产一区二区| 777亚洲妇女| 国产在线不卡一卡二卡三卡四卡| 欧美日韩中文字幕一区二区| 久久国产精品99久久人人澡| 欧美年轻男男videosbes| 国产麻豆成人精品| 91精品国产高清一区二区三区| 国产伦精品一区二区三区免费迷| 欧美日韩中文精品| 九九**精品视频免费播放| 欧美性受极品xxxx喷水| 精品一区二区在线免费观看| 3d成人动漫网站| 国产91精品欧美| 精品国产人成亚洲区| 91在线观看地址| 国产视频一区二区在线观看| 欧美区日韩区| 亚洲欧美日韩在线不卡| 香蕉久久a毛片| 日韩经典中文字幕一区| 欧美羞羞免费网站| 国产一区二区三区久久久| 欧美一区二区视频在线观看2022 | 欧美午夜精品| 亚洲天堂免费在线观看视频| 亚洲中字黄色| 麻豆极品一区二区三区| 日韩一区二区免费在线电影| eeuss鲁一区二区三区| 国产人久久人人人人爽| 亚洲成人中文| 亚洲香肠在线观看| 欧美视频中文一区二区三区在线观看| 国产91精品在线观看| 久久久久9999亚洲精品| 99riav国产精品| 日韩电影在线一区二区| 欧美亚洲日本国产| av中文字幕在线不卡| 中文字幕亚洲精品在线观看| 裸体一区二区| 国产精品一区二区不卡| 国产清纯白嫩初高生在线观看91| 在线免费高清一区二区三区| 视频一区视频二区中文字幕| 欧美一区二视频| 欧美日韩国产精品一区二区亚洲| 亚洲综合色区另类av| 在线亚洲免费视频| 国产盗摄一区二区| 欧美激情在线观看视频免费| 99国产精品| 免费人成黄页网站在线一区二区 | 亚洲综合成人网| 欧美日高清视频| 午夜欧美视频| 视频一区二区三区入口| 欧美精品一卡二卡| 欧美日韩精品不卡| 日韩一区精品视频| 精品国产一区二区三区久久久蜜月| 91久久亚洲| 国产在线不卡一区| 久久久无码精品亚洲日韩按摩| 99国产精品久久久久老师| 看电视剧不卡顿的网站| 久久欧美一区二区| 久久本道综合色狠狠五月| 国产精品一区二区在线看| 国产精品色在线| 欧美亚洲图片小说| 国产一区美女| 久久精品国产亚洲一区二区三区| 久久久精品免费免费| 久久国产主播精品| jvid福利写真一区二区三区| 一区二区激情小说| 91精品午夜视频| 亚洲电影专区| 国产精品1区2区| 亚洲蜜臀av乱码久久精品| 日韩一级高清毛片| 一本一道久久综合狠狠老精东影业| 国产精品一区二区久久不卡| 伊人婷婷欧美激情| 欧美成人精品1314www| 亚洲在线黄色| 99国产精品99久久久久久| 日韩在线一区二区三区| 中文字幕不卡的av| 欧美亚一区二区| 激情久久五月| 成人涩涩免费视频| 日韩电影在线看| 国产精品欧美综合在线| 欧美性大战久久久久久久| 欧美日韩一区二区三区四区在线观看| 麻豆国产精品一区二区三区| 国产精品色呦呦| 555www色欧美视频| 男人的天堂亚洲在线| 欧美片第1页综合| 国产精品亚洲一区二区三区在线 | 国产高清无密码一区二区三区| 亚洲va国产va欧美va观看| 国产日韩av一区| 欧美久久久久久蜜桃| 亚洲最黄网站| 91丝袜美腿高跟国产极品老师 | 欧美中文字幕不卡| 国产欧美日韩综合一区在线播放 | 亚洲综合日韩| 午夜久久黄色| 国产精品1024| 丝袜亚洲精品中文字幕一区| 国产精品久久久久一区二区三区共| 日韩一级二级三级| 在线观看网站黄不卡| 亚洲美女视频在线免费观看| 牛人盗摄一区二区三区视频| 高清在线成人网| 另类小说综合欧美亚洲| 一区二区三区电影在线播| 国产日产亚洲精品系列| 欧美一区二区三级| 欧美色综合影院| 色哟哟一区二区在线观看| 在线国产日韩| 97久久人人超碰| 国产一区二区不卡在线 | 国产精品初高中精品久久| 国产不卡视频在线播放| 日本三级亚洲精品| 亚洲一本大道在线| 亚洲欧美日韩综合aⅴ视频| 国产精品素人视频| 久久青草欧美一区二区三区| 日韩欧美卡一卡二| 欧美日韩国产成人在线91| 色综合久久久久综合体桃花网| 99成人在线| 精品99视频| 91一区二区三区在线观看| 成人永久免费视频| 国产精选一区二区三区 | 91香蕉视频污在线| 成人午夜在线免费| 国产一区二区三区在线观看免费 | 国产成人8x视频一区二区| 国产精品性做久久久久久| 蜜桃视频在线一区| 日韩电影免费在线看| 亚洲国产日韩在线一区模特| 亚洲丝袜精品丝袜在线| 国产精品久久久久久久裸模| 国产亚洲污的网站| 久久久久久**毛片大全| 久久人人爽爽爽人久久久| 精品电影一区二区| 亚洲精品一区二区三区香蕉| 欧美成人激情免费网| 日韩女优av电影在线观看| 精品免费一区二区三区| 欧美不卡在线视频| 欧美电影免费观看高清完整版在线| 欧美女孩性生活视频| 欧美精品久久天天躁| 欧美裸体bbwbbwbbw| 在线综合视频播放| 日韩三级av在线播放| 精品福利视频一区二区三区| 2014亚洲片线观看视频免费| 久久综合av免费| 久久久亚洲欧洲日产国码αv|