php陣列如何轉換為xml的形式?
說到XML很多人對這個語言還是不熟悉的,它表示一種標記語言。在XML語法上,它與HTML類似,但是HTML中的元素是固定的,並且使用者可以定製XML標籤。對於陣列的學習也有一定的積累,那麼我們可以把陣列轉換為XML的形式,在正式開始陣列的轉換前,可以先對XML進行一些瞭解。
1、說明
XML 是可擴充套件標記語言(EXtensible Markup Language)。
XML 是一種很像HTML的標記語言。
XML 的設計宗旨是傳輸資料,而不是顯示資料。
XML 標籤沒有被預定義。您需要自行定義標籤。
XML 被設計為具有自我描述性。
XML 是 W3C 的推薦標準。
2、轉換例項
<?php namespace Library; /** * 最外層的當個元素可以自定義標籤,內層單個元素統一標籤為$defaultSingleOuter */ class XML { private static $version = "1.0"; private static $encoding = 'utf-8'; // 最外層 private static $outer = ''; // 最外層屬性 private static $outerAttribut = []; // 單個元素的外層 private static $singleOuter = ''; // 單個元素外層的屬性 private static $singleOuterAttribut = []; private static $defaultSingleOuter = 'item'; public function A2XML(array $data) { $xml = new XMLWriter(); $this->begin($xml); // 寫資料 if (is_numeric(current(array_keys($data)))) { foreach ($data as $key => $val) { $this->singleBegin($xml, true); $this->writeElement($xml, $val); $this->singleEnd($xml); } } else { $this->writeElement($xml, $data); } return $this->end($xml); } /** * 寫資料 * * @param XMLWriter $xml * @param $data */ private function writeElement(XMLWriter &$xml, $data) { if (!is_array($data)) { $xml->writeElement(self::$defaultSingleOuter, $data); return; } foreach ($data as $key => $val) { if (is_numeric($key)) { is_array($val) && $this->singleBegin($xml); $this->writeElement($xml, $val); is_array($val) && $this->singleEnd($xml); continue; } if (is_array($val)) { $xml->startElement($key); $this->writeElement($xml, $val); $xml->endElement(); continue; } $xml->writeElement($key, $val); } } /** * 開始 * * @param XMLWriter $xml */ private function begin(XMLWriter &$xml) { $xml->openMemory(); $xml->startDocument(self::$version, self::$encoding); if (self::$outer) { $xml->startElement(self::$outer); } if (self::$outerAttribut) { foreach (self::$outerAttribut as $key => $val) { $xml->writeAttribute($key, $val); } } } /** * 結束 * * @param XMLWriter $xml * @return string */ private function end(XMLWriter $xml) { if (self::$outer) { $xml->endElement(); } $xml->endDocument(); header("Content-type: text/xml"); //取得緩衝區裡的xml字串 return $xml->outputMemory(true); } /** * 單個元素的開始 * * @param XMLWriter $xml * @param bool $first */ private function singleBegin(XMLWriter $xml, $first = false) { if ($first) { $xml->startElement(self::$singleOuter ?: self::$defaultSingleOuter); if (self::$singleOuterAttribut) { foreach (self::$singleOuterAttribut as $key => $val) { $xml->writeAttribute($key, $val); } } } else { $xml->startElement(self::$defaultSingleOuter); } } /** * 單個元素的結束 * * @param XMLWriter $xml */ private function singleEnd(XMLWriter $xml) { $xml->endElement(); } public function setVersion($version = 1.0) { self::$version = $version; return $this; } public function setEncoding($encoding = 'utf-8') { self::$version = $encoding; return $this; } public function setOuter($outer = '') { self::$outer = $outer; return $this; } public function setOuterAttribut(array $outerAttribut = []) { self::$outerAttribut = $outerAttribut; return $this; } public function setSingleOuter($singleOuter) { self::$singleOuter = $singleOuter; return $this; } public function setSingleOuterAttribut(array $singleOuterAttribut = []) { self::$singleOuterAttribut = $singleOuterAttribut; return $this; } public function setDefaultSingleOuter($defaultSingleOuter) { self::$defaultSingleOuter = $defaultSingleOuter; return $this; } }
以上就是php陣列轉換為xml形式的方法,可以說xml語言在可擴充套件標記的功能方面是非常出色的,我們對於陣列的使用也是可以進行這方面的轉換。更多php學習指路:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2157/viewspace-2830714/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP利用JSON將XML轉換為陣列PHPJSONXML陣列
- php json轉換成陣列形式PHPJSON陣列
- xml與陣列的相互轉換——phpXML陣列PHP
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- PHP陣列轉換為js陣列PHP陣列JS
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- php陣列轉xml的遞迴實現PHP陣列XML遞迴
- php的陣列轉為物件PHP陣列物件
- PHP 物件轉換成陣列PHP物件陣列
- php如何遍歷多維的stdClassObject物件,php的轉換成陣列的函式只能轉換外面一叢陣列PHPObject物件陣列函式
- Java如何將字串轉換為字元陣列?Java字串字元陣列
- js如何將陣列元素轉換為字串JS陣列字串
- jQuery將類陣列物件轉換為陣列jQuery陣列物件
- JavaScript 字串轉換為陣列JavaScript字串陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- js將偽陣列或者集合轉換為陣列JS陣列
- json字串 轉換為陣列JSON字串陣列
- Java 中陣列轉換為 ListJava陣列
- JavaScript將陣列轉換為字串JavaScript陣列字串
- xml資料轉陣列XML陣列
- javascript將類陣列轉換為陣列程式碼例項JavaScript陣列
- javascript如何將字串轉換成陣列JavaScript字串陣列
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- php陣列轉換js陣列操作及json_encode應用PHP陣列JSON
- Java將地圖轉換為陣列[Snippet]Java地圖陣列
- js將dom元素集合轉換為陣列JS陣列
- List 和 陣列 的轉換陣列
- PHP二維陣列轉一維陣列PHP陣列
- Java中將 int[] 陣列 轉換為 List(ArrayList)Java陣列
- ES6字串轉換為陣列字串陣列
- 如何將一維陣列轉換成與考慮南天陣列元素?陣列
- 把Java陣列轉換為List時的注意事項Java陣列
- 用XML/XSLT將行資料轉換為列資料 (轉)XML
- 陣列型別轉換陣列型別
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 陣列和集合的相互轉換陣列
- 字串和陣列的相互轉換字串陣列
- php日期時間如何轉換為字串PHP字串