日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

xml 解析類

瀏覽:336日期: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 分析類.上面是實用的例子,返回結果是一個二維數(shù)組 格式 $Result[x][xml標記]=xml標記值;
這里沒有從 http 中取數(shù)據(jù),要用另外一個類取數(shù)據(jù).
*/
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 "不能創(chuàng)建 XML 解析器.<br />";
         return false;
      }
   }#Function 分析XML End.
   /*
   function SetNeedParse($NeedParse){
      $this->NeedParseArray=$NeedParse;
   }*/
   function SetNeedParseBlock($NeedParseBlock){
      $this->NeedParseBlockArray=$NeedParseBlock;
   }
   function SetXMLData($XMLData=NULL){//設置XML數(shù)據(jù)
      if($XMLData==""){ if($this->debug) echo "XML 數(shù)據(jù)為空.<br />";exit();
         return false;
      }
      $this->XMLData=$XMLData;
   }#Function SetXMLData End.

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

   function ParseXMLData(){   
      if($this->debug && !$this->ParseHandle) echo "不能創(chuàng)建 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 數(shù)據(jù)錯誤.<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數(shù)據(jù) End.

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

   function CData($ParseHandle=NULL,$DataString=NULL){   
      $this->TmpData=$DataString;
   }#Function 取數(shù)據(jù) 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 說明分析數(shù)據(jù)時發(fā)生錯誤

   $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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久最新视频| 欧美日韩免费观看一区=区三区 | 91久久黄色| 日本亚洲视频在线| 国产高清一区二区| 亚洲激情偷拍| 免费在线观看不卡| 精品久久视频| 日韩三级精品| 91九色综合| 国产日产一区| 精品国产午夜肉伦伦影院| 国产成人精品免费视| 亚洲午夜视频| 日本午夜精品久久久| 精品日本视频| 欧美久久精品一级c片| 蜜臀a∨国产成人精品| 国产精久久久| 伊人久久大香线蕉av不卡| 蜜臀精品一区二区三区在线观看| 日本国产一区| 色爱av综合网| 亚洲一区欧美| 久久男人天堂| 日韩一级欧洲| 日韩精品一区二区三区免费观影| 欧美特黄一级| 欧美在线首页| 日韩欧美看国产| 激情五月色综合国产精品| 日韩va欧美va亚洲va久久| 精品视频一区二区三区在线观看| 大香伊人久久精品一区二区| 99tv成人| 国产欧美激情| 久久国产精品久久久久久电车| 日韩手机在线| 91麻豆国产自产在线观看亚洲| 国产一区导航| 国产欧美一区| 老鸭窝毛片一区二区三区| 国产传媒在线观看| 91精品尤物| 国产一区调教| 日韩精品久久久久久久软件91| 97在线精品| 美女毛片一区二区三区四区最新中文字幕亚洲 | 米奇777超碰欧美日韩亚洲| 国产欧美一区二区色老头| 黄色国产精品| 成人日韩在线| 国产精品日本一区二区不卡视频 | 一区二区精品伦理...| 国产人成精品一区二区三| 亚洲少妇在线| 岛国av在线播放| 鲁大师精品99久久久| 青青伊人久久| 亚洲精品极品| 中文亚洲免费| 欧美午夜不卡| 狠狠操综合网| 欧美福利专区| 亚洲1234区| 98精品视频| 日韩av专区| 久久久久亚洲精品中文字幕| 91福利精品在线观看| 亚洲三级精品| 国产福利一区二区三区在线播放| 国产精品试看| 日韩精品中文字幕第1页| 色婷婷色综合| 精品捆绑调教一区二区三区| 91亚洲自偷观看高清| 欧美国产一级| 尹人成人综合网| 美女精品在线| 日韩av午夜在线观看| 国产色99精品9i| 久久久久久色 | 天堂久久av| 清纯唯美亚洲综合一区| 欧美精品国产| 精品国产美女a久久9999| 粉嫩av一区二区三区四区五区| 久久精品福利| 亚洲成人va| 国产精品美女久久久| 日韩国产欧美在线播放| 欧美激情视频一区二区三区免费 | 日韩在线短视频| 自由日本语亚洲人高潮| 欧美片网站免费| 四季av一区二区凹凸精品| 亚洲性色视频| 日韩高清在线不卡| 精品国产a一区二区三区v免费| 亚洲www免费| 日韩一区二区三区免费视频 | 色爱综合网欧美| 国产日韩专区| 美女视频免费精品| 欧美午夜不卡| 九九久久国产| 视频一区二区三区中文字幕| 97人人精品| 欧美国产偷国产精品三区| 久久性天堂网| 狠狠躁少妇一区二区三区| 中文字幕日韩欧美精品高清在线| 麻豆精品在线| 老司机精品久久| 国产欧洲在线| 亚洲一区成人| 极品av在线| 久久亚洲精品中文字幕| 亚洲免费福利一区| 999国产精品视频| 精品成av人一区二区三区| 欧美一区二区三区久久精品| 欧美a级片一区| 日韩欧美综合| 国产欧美丝祙| 人人精品人人爱| 欧美福利一区| 久久久久久久久久久妇女| 日韩成人a**站| 免费日本视频一区| 日韩免费视频| 精品久久久中文字幕| 久久国产日韩欧美精品| 午夜精品福利影院| 国产精品福利在线观看播放| 超碰99在线| 夜鲁夜鲁夜鲁视频在线播放| 日本午夜精品久久久| 噜噜噜躁狠狠躁狠狠精品视频| 欧美色图国产精品| 青青久久av| 久久国产直播| 国产中文一区| 欧美一区三区| 国产亚洲毛片在线| 92国产精品| 四季av一区二区凹凸精品| 国产精品对白久久久久粗| 91精品国产自产观看在线| 日本va欧美va瓶| 开心激情综合| 日韩午夜电影| 欧美亚洲综合视频| 久久精品 人人爱| 久久精品亚洲一区二区| 亚洲美女久久精品| 99精品在线| 在线综合欧美| 日韩高清电影一区| 91视频一区| 蜜桃成人精品| 老鸭窝亚洲一区二区三区| 青青伊人久久| 亚洲性色av| 日本中文字幕不卡| 国产a亚洲精品| 亚洲手机视频| 欧美一区影院| 色婷婷精品视频| 欧美日韩夜夜| 激情五月综合| 国产亚洲久久| 欧美~级网站不卡| 国产精品porn| 伊人久久大香线蕉av超碰演员| 久久国产精品亚洲77777| 麻豆精品久久| 亚洲小说春色综合另类电影| 久久久国产精品网站| 在线亚洲观看| 黄在线观看免费网站ktv| 免费成人在线观看| 免费福利视频一区二区三区| 亚洲麻豆一区| 伊人成人网在线看| 韩国久久久久久| 国产日韩亚洲| 免费人成精品欧美精品| 欧洲亚洲一区二区三区| 国产精品最新自拍| 免费在线看一区| 亚洲国产综合在线看不卡| 欧美国产另类| 欧美三区不卡| 日韩三级视频| 久久99影视| 国产精品hd| 欧美日韩国产高清电影| 国产精品mv在线观看| 免费在线观看视频一区|