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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- xml與陣列的相互轉換——phpXML陣列PHP
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- PHP陣列轉換為js陣列PHP陣列JS
- PHP 物件轉換成陣列PHP物件陣列
- Java如何將字串轉換為字元陣列?Java字串字元陣列
- json字串 轉換為陣列JSON字串陣列
- JavaScript 字串轉換為陣列JavaScript字串陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- JavaScript將陣列轉換為字串JavaScript陣列字串
- Java 中陣列轉換為 ListJava陣列
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- List 和 陣列 的轉換陣列
- Java將地圖轉換為陣列[Snippet]Java地圖陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- Java中將 int[] 陣列 轉換為 List(ArrayList)Java陣列
- 如何將一維陣列轉換成與考慮南天陣列元素?陣列
- php日期時間如何轉換為字串PHP字串
- 陣列轉換成List集合陣列
- JavaScript將月份轉換為英文簡寫的形式JavaScript
- 陣列和列表的轉換問題陣列
- C# 一維陣列如何快速實現陣列元素的資料型別的轉換?C#陣列資料型別
- php手冊 php陣列的遍歷有哪幾種方式?php陣列如何遍歷?PHP陣列
- Python將xml格式轉換為json格式PythonXMLJSON
- string與char陣列相互轉換陣列
- Java 集合與陣列互相轉換Java陣列
- js 陣列,字串,json互相轉換陣列字串JSON
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- 快速將log4j.xml轉換為logback.xmlXML
- columns陣列形式展示不同列資料陣列
- 技術卡片 - PHP 陣列強制轉換與 array_wrap 方法的比較PHP陣列
- PHP中文字串轉陣列PHP字串陣列
- 再學JavaScript ES(6-10)全版本語法大全(4)- 偽陣列轉換為陣列JavaScript陣列
- 陣列與字串方法與相互轉換陣列字串
- u8 陣列轉換成 string陣列
- C#位元組陣列byte[]和字串string如何互相轉換C#陣列字串
- 劍指offer-轉陣列的最小數字-php陣列PHP
- LeetCode989——陣列形式的整數加法LeetCode陣列
- Python教程:將有序陣列轉換為二叉搜尋樹Python陣列