thinkphp 操作xml格式


前言:雖然xml的格式看起來跟html差不多,但是最近做項目由於用的是thinkphp5.0的版本,做的過程中還是遇到了一些問題。在這里做一下記錄。

首先我們需要定義一個dom對象,我們都知道 php中是這樣來寫的

> $dom = new DOMDocument(); 

可是這時候就報錯了,第一步就卡住了,別說進行下面的DOM操作了

於是我翻了thinkPHP5.0手冊,手冊上倒是提了句關於命名空間,

如果你需要調用PHP內置的類庫,或者第三方沒有使用命名空間的類庫,記得在實例化類庫的時候加上 \

$xml = new \ SimpleXmlElement($xmlstr);

可惜我當時腦子愚笨,並沒有受啟發,后來翻了好些博客,才終於看到

> $dom = new \DOMDocument();

好了。DOM對象終於有了,終於可以操作DOM了

$dom->loadXML($xmlStr);    //將xml字符串轉換為xml文檔

$link = $dom->getElementByTagName('MobileNoteLink');

$Item = $dom->createElement('MobileNodeItem);

$Item->setAttribute('to',$param['to']);

$link->appendChild($Item);

然后看了一下,嘿,咋又報錯了,我這啥都沒干,就是基本的DOM操作啊,,,

這一下可是費了好久的時間才找到問題

> $link = $dom->getElementByTagName('MobileNoteLink')->item(0);

你得獲取到特定的那個標簽元素,不然他就會把所有的標簽都獲取到,成了一個集合

最后一步,因為這是后台操作XML,數據庫的值呢是xml格式的,我也是第一次碰到這樣的情況,還是經驗太少,嘻嘻

需要將xml文檔轉換為xml格式字符串

$newXML = $dom->saveXML();

再之后將字符串插入數據庫就行了。

 

-------------------------------------------------------------------------------------------------------------------------------

用上述這種方式,在linux下需要安裝php,編譯 ./configure時安裝相關的xml庫

所以,可以使用另一種在thinkphp下也可以處理xml     simplexml_load_string()將xml字符串轉換為xml對象

添加: addChild(),為節點添加屬性直接 item['content']

刪除: unset($xml->MobileLink) 刪除對應節點

編輯:

$xml->MobileLink->MobileItem['Content'] = $param['content']

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM