您好,登錄后才能下訂單哦!
本篇文章為大家展示了利用php怎么編寫一個XML操作類,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
具體如下:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <CustomizationSetting version='1.0' > <!-- 各通用配置信息,作為Settings子節(jié)點,方便統(tǒng)一解析 --> <!-- AgentSettings 由網(wǎng)頁定制生成,默認無次節(jié)點--> <AgentSettings> <!-- 以Setting 作為節(jié)點名,考慮擴展時,不需修改客戶端接口。 type類型方便網(wǎng)頁進行顯示控件區(qū)分 --> <!-- 代理定制類型,默認:Normal。在網(wǎng)頁區(qū)分語言定制的情況下,以英文、或列表第一種語言的修改為準 --> <Setting name='CustomizeType' type='enum'>Normal|DR</Setting> <!-- 產(chǎn)品名稱,AgentType為DR時,用于獲取代理購買地址 --> <Setting name='AppName' type='string'>Wondershare Vedio Convertor</Setting> <!-- 品牌名稱,AgentType為DR時,用于獲取代理購買地址 --> <Setting name='Publisher' type='string'>Wondershare</Setting> <!-- 購買地址生成方式,默認:Customize,由網(wǎng)頁生成,默認無次節(jié)點 --> <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子節(jié)點,方便統(tǒng)一解析, 以及擴展 --> <Languages> <!-- 語言名稱,統(tǒng)一使用CBS后臺語言數(shù)據(jù)規(guī)范 --> <Language name='English' > <Settings> <!-- 產(chǎn)品ID,多語言中可被定制 --> <Setting name='PID' type='stirng'>11642</Setting> <!-- 支持彈出廣告,默認:1,最終能否彈廣告還取決于網(wǎng)站的設(shè)置,這里主要用于關(guān)閉的總控制 --> <Setting name='EnabelAD' type='bool'>1|0</Setting> <!-- 支持升級,默認:1 --> <Setting name='EnableUpdate' type='bool'>1|0</Setting> <!-- CBS跳轉(zhuǎn)鏈接類型,只對InstallJumpPage,UninstallJumpPage,RegisterJumpPage,UpdateJumpPage有效,默認:Jump --> <Setting name='CBSJumpType' type='enum'>Jump|Hide|Disable</Setting> <!-- 支持Tisp消息--> <Setting name='TipsEnable' type='bool'>1|0</Setting> <!-- 支持彈出產(chǎn)品目錄推薦, 默認:1--> <Setting name='EnableProductSuit' type='bool'>1|0</Setting> </Settings> <!-- 鏈接地址作為URLS子節(jié)點,方便統(tǒng)一解析 --> <URLS> <!-- 不使用'**Page'直接作為節(jié)點名稱,避免自定義地址的名稱與XML節(jié)點名稱規(guī)范沖突,如就數(shù)字開頭,同時支持網(wǎng)頁界面根據(jù)不同產(chǎn)品顯示鏈接名稱,而且擴展時,而不需修改客戶端接口 --> <!-- 購買地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <!-- 區(qū)分地址類型order, jump, comm, custom方便網(wǎng)頁顯示歸類 --> <URL name='OrderPage' type='order' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 安裝跳轉(zhuǎn)地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='InstallJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 卸載跳轉(zhuǎn)地址,Mac產(chǎn)品無此項。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='UninstallJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 注冊跳轉(zhuǎn)地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='RegisterJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 升級跳轉(zhuǎn)地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='UpdateJumpPage' type='jump' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 公司主頁地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='HomePage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 產(chǎn)品主頁地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='ProductPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 支持地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='SupportPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 聯(lián)系客服地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='ContactPage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 在線幫助地址。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='HelpOnlinePage' type='comm' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 自定義地址,最多可定義5個。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='3DPage' type='custom' updateReserve='0|1'><![CDATA[http://...]]></URL> <!-- 自定義地址,最多可定義5個。屬性updateReserve表示產(chǎn)品升級保留定制信息,默認:0, 進入定制頁面后,默認修改為1 --> <URL name='GPUPage' type='custom' updateReserve='0|1'><![CDATA[http://...]]></URL> </URLS> <!-- 待擴展信息,在客戶端接口中預先處理 --> </Language> <!-- 產(chǎn)品不支持某種語言,則不需要該<Language>節(jié)點 --> <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; } /** * 獲取某個標簽節(jié)點 * @param $parentnode 父節(jié)點 * @param $tagName 標簽名 // 不區(qū)分大小寫 * @return node 節(jié)點對象 */ 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子節(jié)點 * @param $parentNode 父節(jié)點 * @param $tagName 子節(jié)點標簽 // 不區(qū)分大小寫 */ protected function _getNodes($parentNode, $tagName = '') { $nodes = array(); if ($tagName) { $nodes = $this->_getSpecialNodes($parentNode, $tagName); } else { $nodes = $this->_getAllNodes($parentNode); } return $nodes; } /** * 獲取所有的節(jié)點 * @param $parentNode 父節(jié)點 */ protected function _getAllNodes($parentNode) { $nodes = array(); foreach ($parentNode->childNodes as $node) { if ($node->nodeType == 1) { $nodes[] = $node; } } return $nodes; } /** * 獲取指定標簽的節(jié)點 * @param $parentNode 父節(jié)點 * @param $tagName 節(jié)點名稱 */ 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; } /** * 獲取節(jié)點屬性值 * * @param $node 節(jié)點對象 * @param $attrName 節(jié)點名字 // 不區(qū)分大小寫 */ 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 ''; } } ?>
上述內(nèi)容就是利用php怎么編寫一個XML操作類,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。