中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用php怎么編寫一個XML操作類

發布時間:2021-02-13 16:16:12 來源:億速云 閱讀:166 作者:Leah 欄目:開發技術

本篇文章為大家展示了利用php怎么編寫一個XML操作類,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

具體如下:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<CustomizationSetting version='1.0' >
  <!-- 各通用配置信息,作為Settings子節點,方便統一解析 -->
  <!-- AgentSettings 由網頁定制生成,默認無次節點-->
  <AgentSettings>
    <!-- 以Setting 作為節點名,考慮擴展時,不需修改客戶端接口。 type類型方便網頁進行顯示控件區分 -->
    <!-- 代理定制類型,默認:Normal。在網頁區分語言定制的情況下,以英文、或列表第一種語言的修改為準 -->
    <Setting name='CustomizeType' type='enum'>Normal|DR</Setting>
    <!-- 產品名稱,AgentType為DR時,用于獲取代理購買地址 -->
    <Setting name='AppName' type='string'>Wondershare Vedio Convertor</Setting>
    <!-- 品牌名稱,AgentType為DR時,用于獲取代理購買地址 -->
    <Setting name='Publisher' type='string'>Wondershare</Setting>
    <!-- 購買地址生成方式,默認:Customize,由網頁生成,默認無次節點 -->
    <Setting name='OrderPageGenType' type='enum'>Customize|Affiliate</Setting>
    <!-- Affiliate ID, OrderPageGenType為Affiliate才有效,默認為空值 -->
    <Setting name='AID' type='string'>143724583</Setting>
    <!-- 啟動Affiliat 購買地址啟用短鏈接, OrderPageGenType為Affiliate才有效,默認:0 -->
    <Setting name='UseShortAffiliateOrderLink' type='bool'>0|1</Setting>
    <!-- 定制輸出名稱 -->
    <Setting name='OutputFileName' type='string'><![CDATA[1464646.mac-transpod-lite_full879.dmg]]></Setting>
  </AgentSettings>
  <!-- 各語言定制信息,作為Languages子節點,方便統一解析, 以及擴展 -->
  <Languages>
    <!-- 語言名稱,統一使用CBS后臺語言數據規范 -->
    <Language name='English' >
      <Settings>
        <!-- 產品ID,多語言中可被定制 -->
        <Setting name='PID' type='stirng'>11642</Setting>
        <!-- 支持彈出廣告,默認:1,最終能否彈廣告還取決于網站的設置,這里主要用于關閉的總控制 -->
        <Setting name='EnabelAD' type='bool'>1|0</Setting>
        <!-- 支持升級,默認:1 -->
        <Setting name='EnableUpdate' type='bool'>1|0</Setting>
        <!-- CBS跳轉鏈接類型,只對InstallJumpPage,UninstallJumpPage,RegisterJumpPage,UpdateJumpPage有效,默認:Jump -->
        <Setting name='CBSJumpType' type='enum'>Jump|Hide|Disable</Setting>
        <!-- 支持Tisp消息-->
        <Setting name='TipsEnable' type='bool'>1|0</Setting>
        <!-- 支持彈出產品目錄推薦, 默認:1-->
        <Setting name='EnableProductSuit' type='bool'>1|0</Setting>
      </Settings>
      <!-- 鏈接地址作為URLS子節點,方便統一解析 -->
      <URLS>
        <!-- 不使用'**Page'直接作為節點名稱,避免自定義地址的名稱與XML節點名稱規范沖突,如就數字開頭,同時支持網頁界面根據不同產品顯示鏈接名稱,而且擴展時,而不需修改客戶端接口 -->
        <!-- 購買地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <!-- 區分地址類型order, jump, comm, custom方便網頁顯示歸類 -->
        <URL name='OrderPage' type='order' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 安裝跳轉地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='InstallJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 卸載跳轉地址,Mac產品無此項。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='UninstallJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 注冊跳轉地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='RegisterJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 升級跳轉地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='UpdateJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 公司主頁地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='HomePage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 產品主頁地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='ProductPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 支持地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='SupportPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 聯系客服地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='ContactPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 在線幫助地址。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='HelpOnlinePage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 自定義地址,最多可定義5個。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='3DPage' type='custom' updateReserve='0|1'><![CDATA[http://...]]></URL>
        <!-- 自定義地址,最多可定義5個。屬性updateReserve表示產品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 -->
        <URL name='GPUPage' type='custom' updateReserve='0|1'><![CDATA[http://...]]></URL>
      </URLS>
      <!-- 待擴展信息,在客戶端接口中預先處理 -->
    </Language>
    <!-- 產品不支持某種語言,則不需要該<Language>節點 -->
    <Language name='Traditional Chinese(HK)'>
        <!-- 同上 -->
    </Language>
    <Language name='Chinese'>
        <!-- 同上 -->
    </Language>
    <Language name='Portuguese'>
        <!-- 同上 -->
    </Language>
    <Language name='Japanese'>
        <!-- 同上 -->
    </Language>
    <Language name='Korean'>
        <!-- 同上 -->
    </Language>
    <Language name='Hebrew'>
        <!-- 同上 -->
    </Language>
    <Language name='Arabic'>
        <!-- 同上 -->
    </Language>
    <Language name='Spanish'>
        <!-- 同上 -->
    </Language>
    <Language name='Polish'>
        <!-- 同上 -->
    </Language>
    <Language name='German'>
        <!-- 同上 -->
    </Language>
    <Language name='French'>
        <!-- 同上 -->
    </Language>
    <Language name='Italian'>
        <!-- 同上 -->
    </Language>
    <Language name='Spanish(Spain)'>
        <!-- 同上 -->
    </Language>
    <Language name='Spanish(Mexico)'>
        <!-- 同上 -->
    </Language>
    <Language name='Traditional Chinese(TW)'>
        <!-- 同上 -->
    </Language>
    <Language name='Dutch'>
        <!-- 同上 -->
    </Language>
    <Language name='Russian'>
        <!-- 同上 -->
    </Language>
  </Languages>
</CustomizationSetting>

封裝了下讀取xml操作類:

<?php
/**
 * xml操作基類
 */
class XmlBase {
  public function __construct() {
  }
  /**
   * 加載xml
   * @param string $xml xml路徑或xml字符串
   * @param bool $isXmlStr 是否是xml字符串
   */
  protected function _loadXml($xml, $isXmlStr = FALSE) {
    $xmlObj = new DOMDocument();
    if ($isXmlStr) {
      $xmlObj->loadXML($xmlNewStr);
    } else {
      $xmlObj->load($xml);
    }
    return $xmlObj;
  }
  /**
   * 獲取某個標簽節點
   * @param $parentnode 父節點
   * @param $tagName 標簽名 // 不區分大小寫
   * @return node 節點對象
   */
  protected function _getNode($parentNode, $tagName) {
    $childNodes = $this->_getNodes($parentNode);
    foreach ($childNodes as $node) {
      $nodeName = strtolower(trim($node->nodeName));
      $tagName = strtolower(trim($tagName));
      if ($nodeName == $tagName) {
        return $node;
      }
    }
    return NULL;
  }
  /**
   * 獲取xml子節點
   * @param $parentNode 父節點
   * @param $tagName 子節點標簽 // 不區分大小寫
   */
  protected function _getNodes($parentNode, $tagName = '') {
    $nodes = array();
    if ($tagName) {
      $nodes = $this->_getSpecialNodes($parentNode, $tagName);
    } else {
      $nodes = $this->_getAllNodes($parentNode);
    }
    return $nodes;
  }
  /**
   * 獲取所有的節點
   * @param $parentNode 父節點
   */
  protected function _getAllNodes($parentNode) {
    $nodes = array();
    foreach ($parentNode->childNodes as $node) {
      if ($node->nodeType == 1) {
        $nodes[] = $node;
      }
    }
    return $nodes;
  }
  /**
   * 獲取指定標簽的節點
   * @param $parentNode 父節點
   * @param $tagName 節點名稱
   */
  protected function _getSpecialNodes($parentNode, $tagName) {
    $nodes = array();
    $tagName = strtolower(trim($tagName));
    foreach ($parentNode->childNodes as $node) {
      $nodeName = strtolower(trim($node->nodeName));
      if ($node->nodeType == 1 && $nodeName == $tagName) {
        $nodes[] = $node;
      }
    }
    return $nodes;
  }
  /**
   * 獲取節點屬性值
   *
   * @param $node 節點對象
   * @param $attrName 節點名字 // 不區分大小寫
   */
  protected function _getAttr($node, $attrName) {
    $attrName = strtolower($attrName);
    foreach ($node->attributes as $attr) {
      $nodeName = strtolower($attr->nodeName);
      //$nodeValue = strtolower($attr->nodeValue);
      $nodeType = strtolower($attr->nodeType);
      if ($nodeType == 2 && $nodeName == $attrName) {
        unset($attrName, $nodeName, $nodeType);
        return $attr->nodeValue;
      }
    }
    return '';
  }
}
?>

上述內容就是利用php怎么編寫一個XML操作類,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高清| 平武县| 措勤县| 云浮市| 景宁| 苍溪县| 汕尾市| 深圳市| 常山县| 车险| 马龙县| 兰溪市| 财经| 黄梅县| 股票| 滨州市| 汪清县| 揭西县| 甘谷县| 昌吉市| 新绛县| 北票市| 镇江市| 邹城市| 安西县| 怀仁县| 固阳县| 崇文区| 巴林右旗| 丰宁| 弥渡县| 遂宁市| 保康县| 二连浩特市| 汉中市| 万山特区| 望城县| 高邮市| 中宁县| 竹山县| 乐陵市|