亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫 > PHP封裝的XML簡(jiǎn)單操作類完整實(shí)例

PHP封裝的XML簡(jiǎn)單操作類完整實(shí)例

熱門標(biāo)簽:全國各省地圖標(biāo)注點(diǎn) 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 外呼系統(tǒng)人工客服 商丘外呼系統(tǒng)好處 網(wǎng)絡(luò)電話400申請(qǐng) 福建高頻外呼防封系統(tǒng)哪家好 百度地圖標(biāo)注類型是酒店 400電話申請(qǐng)辦理 隨州銷售電銷機(jī)器人公司

本文實(shí)例講述了PHP封裝的XML簡(jiǎn)單操作類。分享給大家供大家參考,具體如下:

xml_dom.php封裝類文件:

?php
/**
 * Class xml_dom
 *
nodeType:
1 XML_ELEMENT_NODE(元素類型)
2 XML_ATTRIBUTE_NODE
3 XML_TEXT_NODE
4 XML_CDATA_SECTION_NODE
5 XML_ENTITY_REFERENCE_NODE
6 XML_ENTITY_NODE
7 XML_PROCESSING_INSTRUCTION_NODE
8 XML_COMMENT_NODE(注釋類型)
9 XML_DOCUMENT_NODE
10 XML_DOCUMENT_TYPE_NODE
11 XML_DOCUMENT_FRAGMENT_NODE
12 XML_NOTATION_NODE
 *
PHP DOMDocument操作:
屬性:
Attributes   存儲(chǔ)節(jié)點(diǎn)的屬性列表(只讀)
childNodes   存儲(chǔ)節(jié)點(diǎn)的子節(jié)點(diǎn)列表(只讀)
dataType   返回此節(jié)點(diǎn)的數(shù)據(jù)類型
Definition   以DTD或XML模式給出的節(jié)點(diǎn)的定義(只讀)
Doctype   指定文檔類型節(jié)點(diǎn)(只讀)
documentElement   返回文檔的根元素(可讀寫)
firstChild   返回當(dāng)前節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)(只讀)
Implementation   返回XMLDOMImplementation對(duì)象
lastChild   返回當(dāng)前節(jié)點(diǎn)最后一個(gè)子節(jié)點(diǎn)(只讀)
nextSibling   返回當(dāng)前節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)(只讀)
nodeName   返回節(jié)點(diǎn)的名字(只讀)
nodeType   返回節(jié)點(diǎn)的類型(只讀)
nodeTypedValue   存儲(chǔ)節(jié)點(diǎn)值(可讀寫)
nodeValue   返回節(jié)點(diǎn)的文本(可讀寫)
ownerDocument   返回包含此節(jié)點(diǎn)的根文檔(只讀)
parentNode   返回父節(jié)點(diǎn)(只讀)
Parsed   返回此節(jié)點(diǎn)及其子節(jié)點(diǎn)是否已經(jīng)被解析(只讀)
Prefix   返回名稱空間前綴(只讀)
preserveWhiteSpace   指定是否保留空白(可讀寫)
previousSibling   返回此節(jié)點(diǎn)的前一個(gè)兄弟節(jié)點(diǎn)(只讀)
Text   返回此節(jié)點(diǎn)及其后代的文本內(nèi)容(可讀寫)
url   返回最近載入的XML文檔的URL(只讀)
Xml   返回節(jié)點(diǎn)及其后代的XML表示(只讀)
方法:
appendChild   為當(dāng)前節(jié)點(diǎn)添加一個(gè)新的子節(jié)點(diǎn),放在最后的子節(jié)點(diǎn)后
cloneNode   返回當(dāng)前節(jié)點(diǎn)的拷貝
createAttribute   創(chuàng)建新的屬性
createCDATASection   創(chuàng)建包括給定數(shù)據(jù)的CDATA段
createComment   創(chuàng)建一個(gè)注釋節(jié)點(diǎn)
createDocumentFragment   創(chuàng)建DocumentFragment對(duì)象
createElement   創(chuàng)建一個(gè)元素節(jié)點(diǎn)
createEntityReference   創(chuàng)建EntityReference對(duì)象
createNode   創(chuàng)建給定類型,名字和命名空間的節(jié)點(diǎn)
createPorcessingInstruction   創(chuàng)建操作指令節(jié)點(diǎn)
createTextNode   創(chuàng)建包括給定數(shù)據(jù)的文本節(jié)點(diǎn)
getElementsByTagName   返回指定名字的元素集合
hasChildNodes   返回當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn)
insertBefore   在指定節(jié)點(diǎn)前插入子節(jié)點(diǎn)
Load   導(dǎo)入指定位置的XML文檔
loadXML   導(dǎo)入指定字符串的XML文檔
removeChild   從子結(jié)點(diǎn)列表中刪除指定的子節(jié)點(diǎn)
replaceChild   從子節(jié)點(diǎn)列表中替換指定的子節(jié)點(diǎn)
Save   把XML文件存到指定節(jié)點(diǎn)
selectNodes   對(duì)節(jié)點(diǎn)進(jìn)行指定的匹配,并返回匹配節(jié)點(diǎn)列表
selectSingleNode   對(duì)節(jié)點(diǎn)進(jìn)行指定的匹配,并返回第一個(gè)匹配節(jié)點(diǎn)
transformNode   使用指定的樣式表對(duì)節(jié)點(diǎn)及其后代進(jìn)行轉(zhuǎn)換
 *
 */
class xml_dom
{
  protected $dblink; // xml連接
  protected $dbfile; // xml文件路徑
  /**
   * xml文件 構(gòu)造類
   * @param $db_file xml文件
   */
  public function __construct($db_file)
  {
    $this->dbfile = $db_file;
    if(!file_exists($db_file))
    {
//     die('未找到數(shù)據(jù)庫文件');
      $this->dblink = new DOMDocument('1.0', 'utf-8');
      $root = $this->dblink->createElement('root');
      $this->dblink->appendChild($root);
      $this->dblink->formatOutput = true;  // xml文件保留縮進(jìn)樣式
      $this->dblink->save($this->dbfile);
    }
    else
    {
      $this->dblink = new DOMDocument();
      $this->dblink->formatOutput = true;
      $this->dblink->load($this->dbfile);
    }
  }
  /**
   * 遍歷所有元素
   * ===============================================
   * 標(biāo)準(zhǔn)xml文件,一個(gè)元素可能有n個(gè)屬性,可用自定義鍵[nodevalue]獲取元素值
   * ?xml version="1.0" encoding="utf-8"?>
   * table name="posts">
   *   column name="id">1/column>
   *   column name="title">標(biāo)題一/column>
   *   column name="content">詳細(xì)內(nèi)容一/column>
   * /table>
   * ===============================================
   * 簡(jiǎn)單xml文件,沒有屬性,鍵值一一對(duì)應(yīng)
   * ?xml version="1.0" encoding="utf-8"?>
   * root>
   *   posts>
   *     id>1/id>
   *     title>標(biāo)題一/title>
   *     content>詳細(xì)內(nèi)容一/content>
   *   /posts>
   * /root>
   * @param $node
   * @return array
   */
  function getData($node=0){
    if(!$node)
    {
      $node = $this->dblink->documentElement;
    }
    $array = array();
    foreach($node->attributes as $attribute)
    {
      $key = $attribute->nodeName;
      $val = $attribute->nodeValue;
      $array[$key] = $val;
    }
    if(count($array))  // 有屬性,則用[nodevalue]鍵代表值
    {
      $array['nodevalue'] = $node->nodeValue;
    }
    // 遞歸遍歷所有子元素
    $node_child = $node->firstChild;
    while($node_child)
    {
      if(XML_ELEMENT_NODE == $node_child->nodeType)
      {
        $tagname = $node_child->tagName;
        $result = $this->getData($node_child);
        if(isset($array[$tagname])) // 發(fā)現(xiàn)有重復(fù)tagName的子元素存在,所以改用數(shù)組存儲(chǔ)重復(fù)tagName的所有子元素
        {
          if(!is_array($array[$tagname][0]))
          {
            $tmp = $array[$tagname];
            $array[$tagname] = array();
            $array[$tagname][] = $tmp;
          }
          $array[$tagname][] = $result;
        }
        else
        {
          $array[$tagname] = $result;
        }
      }
      $node_child = $node_child->nextSibling;
    }
    if(!count($array)) // 沒有子元素沒有屬性=最末子元素,就返回該元素的nodeValue值
    {
      return $node->nodeValue;
    }
    return $array;
  }
  /**
   * 把a(bǔ)rray數(shù)據(jù)寫到xml文件(覆蓋)
   * @param $data
   */
  public function setData($data,$node=0)
  {
    $is_root = false;
    if(!$node)
    {
      $is_root = true;
      $node = $this->dblink->documentElement;
      // 清除原數(shù)據(jù)
      $remove = array();
      $node_child = $node->firstChild;
      while($node_child)
      {
        $remove[] = $node_child;
        $node_child = $node_child->nextSibling;
      }
      foreach($remove as $r)
      {
        $node->removeChild($r);
      }
    }
    if(is_array($data))
    {
      foreach($data as $k=>$v)
      {
        if(is_array($v))
        {
          foreach($v as $r)
          {
            $item = $this->dblink->createElement($k);
            $result = $this->setData($r,$item);
            $node->appendChild($result);
          }
        }
        else
        {
          $item = $this->dblink->createElement($k);
          $value = $this->dblink->createTextNode($v);
          $item->appendChild($value);
          $node->appendChild($item);
        }
      }
    }
    else
    {
      $item = $this->dblink->createTextNode($data);
      $node->appendChild($item);
    }
    if($is_root)
    {
      $this->dblink->save($this->dbfile);  // 覆蓋寫入
    }
    else
    {
      return $node;
    }
  }
}

簡(jiǎn)單用法示例如下:

smp.xml文件:

?xml version="1.0" encoding="utf-8"?>
root>
   posts>
     id>1/id>
     title>標(biāo)題一/title>
     content>詳細(xì)內(nèi)容一/content>
   /posts>
   posts>
     id>2/id>
     title>標(biāo)題二/title>
     content>詳細(xì)內(nèi)容二/content>
   /posts>
   posts>
     id>3/id>
     title>標(biāo)題三/title>
     content>詳細(xì)內(nèi)容三/content>
   /posts>
/root>

index.php文件:

include("xml_dom.php");
$xml=new xml_dom("smp.xml");//載入xml文件
$xmlarr=$xml->getData();//讀取xml文件內(nèi)容
var_dump($xmlarr);

運(yùn)行結(jié)果:

array(1) {
 ["posts"]=>
 array(3) {
  [0]=>
  array(3) {
   ["id"]=>
   string(1) "1"
   ["title"]=>
   string(9) "標(biāo)題一"
   ["content"]=>
   string(15) "詳細(xì)內(nèi)容一"
  }
  [1]=>
  array(3) {
   ["id"]=>
   string(1) "2"
   ["title"]=>
   string(9) "標(biāo)題二"
   ["content"]=>
   string(15) "詳細(xì)內(nèi)容二"
  }
  [2]=>
  array(3) {
   ["id"]=>
   string(1) "3"
   ["title"]=>
   string(9) "標(biāo)題三"
   ["content"]=>
   string(15) "詳細(xì)內(nèi)容三"
  }
 }
}

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

在線XML/JSON互相轉(zhuǎn)換工具:
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

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP針對(duì)XML文件操作技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • php+Ajax處理xml與json格式數(shù)據(jù)的方法示例
  • PHP以json或xml格式返回請(qǐng)求數(shù)據(jù)的方法
  • php實(shí)現(xiàn)xml與json之間的相互轉(zhuǎn)換功能實(shí)例
  • PHP生成json和xml類型接口數(shù)據(jù)格式
  • PHP實(shí)現(xiàn)返回JSON和XML的類分享
  • php json與xml序列化/反序列化
  • php 備份數(shù)據(jù)庫代碼(生成word,excel,json,xml,sql)
  • PHP數(shù)組生成XML格式數(shù)據(jù)的封裝類實(shí)例
  • php封裝json通信接口詳解及實(shí)例
  • PHP封裝返回Ajax字符串和JSON數(shù)組的方法
  • PHP封裝XML和JSON格式數(shù)據(jù)接口操作示例

標(biāo)簽:海南 佛山 六安 迪慶 定西 南寧 十堰 樂山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP封裝的XML簡(jiǎn)單操作類完整實(shí)例》,本文關(guān)鍵詞  PHP,封,裝的,XML,簡(jiǎn)單,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP封裝的XML簡(jiǎn)單操作類完整實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP封裝的XML簡(jiǎn)單操作類完整實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品在线观看一区| 台湾美女古装一级毛片| 国产网站免费在线观看| 日韩avdvd| 99久久精品国产免费| 精品久久久久久综合网| 国产伦理精品| 日日爽天天| 91麻豆国产| 黄色短视屏| 精品国产一区二区三区久| 天天做人人爱夜夜爽2020| 日本伦理黄色大片在线观看网站| 免费一级生活片| 久草免费在线视频| 91麻豆爱豆果冻天美星空| 成人高清视频在线观看| 欧美1区| 国产成人精品综合| 在线观看成人网| 日本伦理黄色大片在线观看网站| 精品美女| 香蕉视频久久| 亚洲wwwwww| 日韩欧美一二三区| 青青久久精品国产免费看| 精品国产一级毛片| 亚洲精品永久一区| 亚洲第一色在线| 可以免费看污视频的网站| 日本免费看视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩中文字幕在线观看视频| 久久国产精品自线拍免费| 国产高清视频免费观看| 国产麻豆精品| 九九热国产视频| 一级女性全黄久久生活片| 久久精品免视看国产成人2021| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产国语对白一级毛片| 精品国产一区二区三区久久久蜜臀| 日韩专区亚洲综合久久| 久久国产精品只做精品| 香蕉视频亚洲一级| 黄色短视屏| 国产91素人搭讪系列天堂| 国产视频一区二区在线播放| 久久精品店| 国产综合成人观看在线| 国产麻豆精品高清在线播放| 国产综合成人观看在线| 国产综合91天堂亚洲国产| 日韩在线观看网站| 91麻豆爱豆果冻天美星空| 一本高清在线| 免费一级片网站| 国产成人欧美一区二区三区的| 成人免费网站久久久| 欧美大片aaaa一级毛片| 久久久久久久免费视频| 日本伦理片网站| 黄色短视屏| 久久国产一久久高清| 国产激情视频在线观看| 精品视频免费看| 91麻豆精品国产自产在线| 精品国产香蕉在线播出| 国产网站麻豆精品视频| 欧美另类videosbestsex视频| 黄视频网站免费看| 91麻豆tv| 成人免费观看的视频黄页| 国产综合成人观看在线| 欧美另类videosbestsex视频 | 青草国产在线观看| 久久国产精品自由自在| 中文字幕一区二区三区精彩视频| 国产极品白嫩美女在线观看看| 精品在线观看一区| 人人干人人插| 韩国毛片免费大片| 美女免费精品视频在线观看| 亚洲wwwwww| 国产伦精品一区二区三区无广告 | 日韩欧美一二三区| 欧美电影免费看大全| 亚洲wwwwww| 黄视频网站免费| 国产高清在线精品一区二区| 二级特黄绝大片免费视频大片| 欧美大片一区| 九九久久国产精品大片| 一级女性全黄久久生活片| 九九九网站| 成人免费观看网欧美片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产激情一区二区三区| 国产成人啪精品| 精品视频在线观看免费 | 免费国产在线视频| 国产成人女人在线视频观看| 91麻豆精品国产综合久久久| 日韩男人天堂| 麻豆系列 在线视频| 精品美女| 成人免费一级毛片在线播放视频| 精品在线免费播放| 二级片在线观看| 日韩一级黄色大片| 国产一区二区精品久久91| 91麻豆国产| 99色视频在线观看| a级毛片免费全部播放| 亚洲女人国产香蕉久久精品| 夜夜操网| 欧美激情伊人| 成人高清视频免费观看| 一级女性全黄生活片免费| 日本特黄特黄aaaaa大片| 青青久久精品| 欧美日本国产| 精品久久久久久中文| 国产成a人片在线观看视频| 国产亚洲精品成人a在线| 欧美另类videosbestsex视频| 可以免费看污视频的网站| 99久久精品国产免费| 亚洲wwwwww| 成人免费观看男女羞羞视频| 欧美激情伊人| 国产不卡精品一区二区三区| 香蕉视频一级| 香蕉视频久久| 一级女性全黄生活片免费 | 黄视频网站在线看| 国产精品1024永久免费视频| 亚洲第一页乱| 欧美一级视频免费观看| 四虎影视精品永久免费网站| 久久国产精品只做精品| 国产综合成人观看在线| 成人免费网站久久久| 国产一区二区精品久久| 精品国产亚洲人成在线| 日本乱中文字幕系列| 欧美a级成人淫片免费看| 四虎影视库| 欧美另类videosbestsex视频| 欧美日本免费| 一级毛片视频在线观看| 91麻豆精品国产自产在线 | 日韩一级黄色| 一级毛片视频免费| 九九九国产| 国产网站免费观看| 九九免费高清在线观看视频| 日本免费看视频| 国产一区二区精品| 精品国产一区二区三区久久久蜜臀 | 91麻豆精品国产自产在线观看一区 | 亚久久伊人精品青青草原2020| 久久精品成人一区二区三区| 国产成人精品一区二区视频| 国产亚洲精品成人a在线| 欧美激情一区二区三区在线播放| 日韩一级黄色大片| 亚洲 国产精品 日韩| 国产一区二区高清视频| 青青青草影院| 天堂网中文在线| 日韩中文字幕在线亚洲一区| 精品久久久久久影院免费| 欧美另类videosbestsex| 国产不卡在线观看| 午夜在线亚洲男人午在线| 国产伦精品一区二区三区在线观看 | 成人免费观看男女羞羞视频| 国产视频久久久久| 欧美日本国产| 欧美国产日韩久久久| 成人a大片在线观看| 四虎影视久久久| 国产激情视频在线观看| 可以免费看毛片的网站| 日韩一级精品视频在线观看| 亚洲精品永久一区| 美女免费精品视频在线观看| 999久久狠狠免费精品| 精品国产亚洲人成在线| 亚欧成人毛片一区二区三区四区| 青青久久精品国产免费看| 日本伦理网站| 国产成人精品综合在线| 999久久狠狠免费精品| 国产麻豆精品视频| 99热热久久| 青青青草视频在线观看| 在线观看导航| 成人免费网站久久久|