婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP解析xml格式數據工具類示例

PHP解析xml格式數據工具類示例

熱門標簽:長沙crm外呼系統業務 南寧高頻外呼回撥系統哪家好 江蘇外呼電銷機器人報價 電話機器人危險嗎 離石地圖標注 專業電話機器人批發商 400電話辦理福州市 深圳外呼系統收費 400電話申請方法收費

本文實例講述了PHP解析xml格式數據工具類。分享給大家供大家參考,具體如下:

class ome_xml {
  /**
  * xml資源
  *
  * @var    resource
  * @see    xml_parser_create()
  */
  public $parser;
  /**
  * 資源編碼
  *
  * @var    string
  */
  public $srcenc;
  /**
  * target encoding
  *
  * @var    string
  */
  public $dstenc;
  /**
  * the original struct
  *
  * @access  private
  * @var    array
  */
  public $_struct = array();
  /**
  * Constructor
  *
  * @access    public
  * @param    mixed    [$srcenc] source encoding
  * @param    mixed    [$dstenc] target encoding
  * @return    void
  * @since
  */
  function SofeeXmlParser($srcenc = null, $dstenc = null) {
    $this->srcenc = $srcenc;
    $this->dstenc = $dstenc;
    // initialize the variable.
    $this->parser = null;
    $this->_struct = array();
  }
  /**
  * Parses the XML file
  *
  * @access    public
  * @param    string    [$file] the XML file name
  * @return    void
  * @since
  */
  function xml2array($file) {
    //$this->SofeeXmlParser('utf-8');
  $data = file_get_contents($file);
    $this->parseString($data);
    return $this->getTree();
  }
  function xml3array($file){
  $data = file_get_contents($file);
  $this->parseString($data);
  return $this->_struct;
  }
  /**
  * Parses a string.
  *
  * @access    public
  * @param    string    data XML data
  * @return    void
  */
  function parseString($data) {
    if ($this->srcenc === null) {
      $this->parser = xml_parser_create();
    } else {
      if($this->parser = xml_parser_create($this->srcenc)) {
        return 'Unable to create XML parser resource with '. $this->srcenc .' encoding.';
      }
    }
    if ($this->dstenc !== null) {
      @xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $this->dstenc) or die('Invalid target encoding');
    }
    xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);  // lowercase tags
    xml_parser_set_option($this->parser, XML_OPTION_SKIP_WHITE, 1);    // skip empty tags
    if (!xml_parse_into_struct($this->parser, $data, $this->_struct)) {
      /*printf("XML error: %s at line %d",
          xml_error_string(xml_get_error_code($this->parser)),
          xml_get_current_line_number($this->parser)
      );*/
      $this->free();
      return false;
    }
    $this->_count = count($this->_struct);
    $this->free();
  }
  /**
  * return the data struction
  *
  * @access    public
  * @return    array
  */
  function getTree() {
    $i = 0;
    $tree = array();
    $tree = $this->addNode(
      $tree,
      $this->_struct[$i]['tag'],
      (isset($this->_struct[$i]['value'])) ? $this->_struct[$i]['value'] : '',
      (isset($this->_struct[$i]['attributes'])) ? $this->_struct[$i]['attributes'] : '',
      $this->getChild($i)
    );
    unset($this->_struct);
    return $tree;
  }
  /**
  * recursion the children node data
  *
  * @access    public
  * @param    integer    [$i] the last struct index
  * @return    array
  */
  function getChild($i) {
    // contain node data
    $children = array();
    // loop
    while (++$i  $this->_count) {
      // node tag name
      $tagname = $this->_struct[$i]['tag'];
      $value = isset($this->_struct[$i]['value']) ? $this->_struct[$i]['value'] : '';
      $attributes = isset($this->_struct[$i]['attributes']) ? $this->_struct[$i]['attributes'] : '';
      switch ($this->_struct[$i]['type']) {
        case 'open':
          // node has more children
          $child = $this->getChild($i);
          // append the children data to the current node
          $children = $this->addNode($children, $tagname, $value, $attributes, $child);
          break;
        case 'complete':
          // at end of current branch
          $children = $this->addNode($children, $tagname, $value, $attributes);
          break;
        case 'cdata':
          // node has CDATA after one of it's children
          $children['value'] .= $value;
          break;
        case 'close':
          // end of node, return collected data
          return $children;
          break;
      }
    }
    //return $children;
  }
  /**
  * Appends some values to an array
  *
  * @access    public
  * @param    array    [$target]
  * @param    string    [$key]
  * @param    string    [$value]
  * @param    array    [$attributes]
  * @param    array    [$inner] the children
  * @return    void
  * @since
  */
  function addNode($target, $key, $value = '', $attributes = '', $child = '') {
    if (!isset($target[$key]['value'])  !isset($target[$key][0])) {
      if ($child != '') {
        $target[$key] = $child;
      }
      if ($attributes != '') {
        foreach ($attributes as $k => $v) {
          $target[$key][$k] = $v;
        }
      }
      $target[$key]['value'] = $value;
    } else {
      if (!isset($target[$key][0])) {
        // is string or other
        $oldvalue = $target[$key];
        $target[$key] = array();
        $target[$key][0] = $oldvalue;
        $index = 1;
      } else {
        // is array
        $index = count($target[$key]);
      }
      if ($child != '') {
        $target[$key][$index] = $child;
      }
      if ($attributes != '') {
        foreach ($attributes as $k => $v) {
          $target[$key][$index][$k] = $v;
        }
      }
      $target[$key][$index]['value'] = $value;
    }
    return $target;
  }
  /**
  * Free the resources
  *
  * @access    public
  * @return    void
  **/
  function free() {
    if (isset($this->parser)  is_resource($this->parser)) {
      xml_parser_free($this->parser);
      unset($this->parser);
    }
  }
}

PS:這里再為大家提供幾款關于xml操作的在線工具供大家參考使用:

在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.jb51.net/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP針對XML文件操作技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP錯誤與異常處理方法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php獲取通過http協議post提交過來xml數據及解析xml
  • php解析xml方法實例詳解
  • php解析xml 的四種簡單方法(附實例)
  • PHP用SAX解析XML的實現代碼與問題分析
  • php遍歷解析xml字符串的方法
  • php 解析xml 的四種方法詳細介紹
  • PHP基于SimpleXML生成和解析xml的方法示例
  • PHP使用xpath解析XML的方法詳解
  • PHP處理數組和XML之間的互相轉換
  • php實現將數組轉換為XML的方法
  • PHP簡單實現解析xml為數組的方法

標簽:曲靖 興安盟 太原 株洲 白酒營銷 南京 南昌 濱州

巨人網絡通訊聲明:本文標題《PHP解析xml格式數據工具類示例》,本文關鍵詞  PHP,解析,xml,格式,數據,工具,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP解析xml格式數據工具類示例》相關的同類信息!
  • 本頁收集關于PHP解析xml格式數據工具類示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品一二三四区| 久久久久久免费毛片精品| 久久色.com| 九色porny丨国产精品| 欧美一区二区三区系列电影| 偷拍自拍另类欧美| 日韩一区二区视频| 国产精品 欧美精品| 悠悠色在线精品| 久久久精品黄色| 一本色道久久综合狠狠躁的推荐| 亚洲手机成人高清视频| 色综合天天做天天爱| 日韩av成人高清| 亚洲精品国产视频| 国产欧美日韩激情| 欧美亚洲综合在线| 91色在线porny| 蜜臀久久久99精品久久久久久| 亚洲乱码一区二区三区在线观看| 欧美日韩一区二区三区视频 | 亚洲精品日韩一| 成人黄色av电影| 精品亚洲国产成人av制服丝袜 | 亚洲午夜私人影院| 91偷拍与自偷拍精品| 国产精品久久久久国产精品日日| 国产精品123| 国产亚洲精久久久久久| 国产最新精品免费| 97久久超碰国产精品电影| 久久国产欧美日韩精品| 麻豆国产精品官网| 国产在线精品一区二区三区不卡| 亚洲日本乱码在线观看| 亚洲精品自拍动漫在线| 国产精品免费观看视频| 欧美久久久影院| 91麻豆精东视频| 99精品视频一区二区| av欧美精品.com| 97精品久久久久中文字幕| 国产在线精品一区二区不卡了| 国产一区二区三区免费| 国产一区二区剧情av在线| 色欲综合视频天天天| 欧美三片在线视频观看| 欧美日韩中文字幕一区二区| 日韩一区二区三区视频| 中文字幕高清不卡| 精品亚洲成a人| 午夜电影网亚洲视频| 亚洲va国产天堂va久久en| 欧美视频在线播放| 久久精品日韩一区二区三区| 国产激情一区二区三区四区| 亚洲激情综合网| 欧美撒尿777hd撒尿| 蜜臀av一区二区在线观看| 欧美成人精品3d动漫h| 不卡区在线中文字幕| 亚洲一区二区三区在线| 精品国产乱码久久久久久闺蜜| 成人性生交大片免费看中文 | 亚洲在线成人精品| 国产在线精品一区在线观看麻豆| 91在线视频免费91| 国产欧美va欧美不卡在线| 精品国产免费人成在线观看| 成人激情小说网站| 国产呦萝稀缺另类资源| 欧美伊人精品成人久久综合97| 国产清纯白嫩初高生在线观看91| 中文字幕一区二区三区不卡| 色综合夜色一区| 韩国欧美国产1区| 亚洲最大的成人av| 国产精品麻豆视频| 日韩女优av电影在线观看| 在线视频中文字幕一区二区| 国产精品自产自拍| 日韩电影一区二区三区| 亚洲人成网站精品片在线观看| 337p日本欧洲亚洲大胆精品| 欧美美女一区二区在线观看| 91美女在线观看| 菠萝蜜视频在线观看一区| 国产精品一区二区在线观看不卡| 视频一区欧美精品| 亚洲综合色自拍一区| 亚洲黄色片在线观看| 日韩一区在线播放| 国产日韩精品视频一区| 久久久亚洲午夜电影| 日韩三级高清在线| 91精品国产高清一区二区三区蜜臀| 色女孩综合影院| 93久久精品日日躁夜夜躁欧美| 国产·精品毛片| 亚洲一级二级三级在线免费观看| 99国内精品久久| 蜜乳av一区二区三区| 亚洲欧美日韩电影| 精品久久久久久最新网址| 一本到一区二区三区| 麻豆成人久久精品二区三区红| 不卡免费追剧大全电视剧网站| 日韩成人dvd| 自拍偷拍亚洲综合| 欧美不卡一区二区三区| 国产成人综合精品三级| 亚洲愉拍自拍另类高清精品| 亚洲综合一区二区| 亚洲影院理伦片| 亚洲午夜一区二区| 亚洲成av人片在线观看无码| 午夜在线电影亚洲一区| 日本女优在线视频一区二区| 国产亚洲一二三区| 日韩精品中文字幕在线不卡尤物| 色狠狠一区二区三区香蕉| 看国产成人h片视频| 亚洲精品国产品国语在线app| 国产福利一区二区| 依依成人精品视频| 69p69国产精品| 国产一区二区剧情av在线| 亚洲同性同志一二三专区| 色婷婷久久99综合精品jk白丝| 亚洲人成7777| 欧美一级国产精品| 亚洲国产精品尤物yw在线观看| 欧美日韩一区二区在线视频| 久久精品久久综合| 日韩精品免费专区| 在线精品视频免费观看| 精品国产第一区二区三区观看体验| 久久疯狂做爰流白浆xx| 九九热在线视频观看这里只有精品| 99国产精品国产精品久久| 视频在线观看一区二区三区| 国产三级欧美三级| 精品久久人人做人人爰| 日韩理论片中文av| 麻豆国产欧美一区二区三区| av网站免费线看精品| 欧美成人女星排名| 亚洲欧美国产高清| 麻豆精品视频在线观看免费| 波多野结衣91| 91精品国产乱| 中文字幕一区二区不卡| 91美女视频网站| 欧美专区在线观看一区| 欧美日韩国产一级片| 在线综合亚洲欧美在线视频| 欧美亚洲高清一区| 欧美丰满嫩嫩电影| 欧美主播一区二区三区美女| 91免费观看在线| 色88888久久久久久影院野外| 色一区在线观看| 日本丰满少妇一区二区三区| 欧美三级乱人伦电影| 3atv一区二区三区| 精品成a人在线观看| 久久久三级国产网站| 久久精品视频网| 欧美日韩国产综合一区二区三区| 在线一区二区三区做爰视频网站| 国产欧美一区二区精品忘忧草| 偷拍一区二区三区| 日韩综合一区二区| 日韩不卡在线观看日韩不卡视频| 国产精品久久久爽爽爽麻豆色哟哟 | 在线播放日韩导航| 国内精品不卡在线| 午夜精品福利一区二区三区av| 不卡高清视频专区| 欧美无乱码久久久免费午夜一区| 国产精品不卡视频| 日韩av电影免费观看高清完整版| 色天天综合色天天久久| 欧美国产日本韩| 久久精品国产在热久久| 777色狠狠一区二区三区| 国产精品久久午夜| 成人97人人超碰人人99| 色网站国产精品| 欧美日韩亚洲综合| 欧美一级黄色大片| 精品国产sm最大网站免费看| 亚洲综合久久久久| 精品亚洲免费视频| 欧美日韩国产bt| 中文字幕佐山爱一区二区免费| 一区二区免费在线播放| 中文字幕一区二区三区乱码在线| 国产在线视频一区二区| 国产日韩亚洲欧美综合|