最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中將數(shù)組轉(zhuǎn)成XML格式的實(shí)現(xiàn)代碼

 更新時(shí)間:2011年08月08日 18:58:15   作者:  
網(wǎng)上找的一段代碼! 然后我自己根據(jù)php DOMDocument又寫(xiě)了一段代碼,需要的朋友可以參考下。
下面是網(wǎng)上的
復(fù)制代碼 代碼如下:

class ArrayToXML
{
/**
* The main function for converting to an XML document.
* Pass in a multi dimensional array and this recrusively loops through and builds up an XML document.
*
* @param array $data
* @param string $rootNodeName - what you want the root node to be - defaultsto data.
* @param SimpleXMLElement $xml - should only be used recursively
* @return string XML
*/
public static function toXml($data, $rootNodeName = 'data', $xml=null)
{
// turn off compatibility mode as simple xml throws a wobbly if you don't.
if (ini_get('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($xml == null)
{
$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");
}
// loop through the data passed in.
foreach($data as $key => $value)
{
// no numeric keys in our xml please!
if (is_numeric($key))
{
// make string key...
$key = "unknownNode_". (string) $key;
}
// replace anything not alpha numeric
$key = preg_replace('/[^a-z]/i', '', $key);
// if there is another array found recrusively call this function
if (is_array($value))
{
$node = $xml->addChild($key);
// recrusive call.
ArrayToXML::toXml($value, $rootNodeName, $node);
}
else
{
// add single node.
$value = htmlentities($value);
$xml->addChild($key,$value);
}
}
// pass back as string. or simple xml object if you want!
return $xml->asXML();
}
}

下面是我編輯過(guò)的代碼
復(fù)制代碼 代碼如下:

function arrtoxml($arr,$dom=0,$item=0){
if (!$dom){
$dom = new DOMDocument("1.0");
}
if(!$item){
$item = $dom->createElement("root");
$dom->appendChild($item);
}
foreach ($arr as $key=>$val){
$itemx = $dom->createElement(is_string($key)?$key:"item");
$item->appendChild($itemx);
if (!is_array($val)){
$text = $dom->createTextNode($val);
$itemx->appendChild($text);
}else {
arrtoxml($val,$dom,$itemx);
}
}
return $dom->saveXML();
}

數(shù)組轉(zhuǎn)換成XML格式
復(fù)制代碼 代碼如下:

<?
$elementLevel = 0 ;
function array_Xml($array, $keys = '')
{
global $elementLevel;
if(!is_array($array))
{
if($keys == ''){
return $array;
}else{
return "\n<$keys>" . $array . "</$keys>";
}
}else{
foreach ($array as $key => $value)
{
$haveTag = true;
if (is_numeric($key))
{
$key = $keys;
$haveTag = false;
}
/**
* The first element
*/
if($elementLevel == 0 )
{
$startElement = "<$key>";
$endElement = "</$key>";
}
$text .= $startElement."\n";
/**
* Other elements
*/
if(!$haveTag)
{
$elementLevel++;
$text .= "<$key>" . array_Xml($value, $key). "</$key>\n";
}else{
$elementLevel++;
$text .= array_Xml($value, $key);
}
$text .= $endElement."\n";
}
}
return $text;
}
?>

函數(shù)描述及例子
復(fù)制代碼 代碼如下:

<?
$array = array(
"employees" => array(
"employee" => array(
array(
"name" => "name one",
"position" => "position one"
),
array(
"name" => "name two",
"position" => "position two"
),
array(
"name" => "name three",
"position" => "position three"
)
)
)
);
echo array_Xml($array);
?>

相關(guān)文章

  • 在WAMP環(huán)境下搭建ZendDebugger php調(diào)試工具的方法

    在WAMP環(huán)境下搭建ZendDebugger php調(diào)試工具的方法

    一直以來(lái),寫(xiě)php都是用Dreamweaver,有時(shí)候真是痛苦啊,出現(xiàn)一個(gè)bug,想看一些元素的值,必須用echo輸出來(lái)才知道,現(xiàn)在了解到一個(gè)斷點(diǎn)調(diào)試?yán)?,php終于也能像java、.NET那樣斷點(diǎn)調(diào)試,這就是——ZendDebugger
    2011-07-07
  • PHP合并數(shù)組的2種方法小結(jié)

    PHP合并數(shù)組的2種方法小結(jié)

    大家都知道PHP中兩個(gè)數(shù)組合并可以使用+或者array_merge,但之間還是有區(qū)別的,而且這些區(qū)別如果了解不清楚項(xiàng)目中會(huì)要命的!這篇文章給加總結(jié)介紹了PHP合并數(shù)組的2種方法,有需要的朋友們可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • php項(xiàng)目中類(lèi)的自動(dòng)加載實(shí)例講解

    php項(xiàng)目中類(lèi)的自動(dòng)加載實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于php項(xiàng)目中類(lèi)的自動(dòng)加載的實(shí)例內(nèi)容以及相關(guān)代碼,需要的朋友們學(xué)習(xí)下。
    2019-09-09
  • PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之二 對(duì)象之間搬移特性

    PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之二 對(duì)象之間搬移特性

    承接上文PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之 重新組織你的函數(shù) ,繼續(xù)說(shuō)重構(gòu)方面的內(nèi)容
    2012-04-04
  • 在zblog首頁(yè)調(diào)用不同欄目的列表數(shù)據(jù)

    在zblog首頁(yè)調(diào)用不同欄目的列表數(shù)據(jù)

    這篇文章主要介紹了在zblog首頁(yè)調(diào)用不同欄目的列表數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • php empty函數(shù) 使用說(shuō)明

    php empty函數(shù) 使用說(shuō)明

    對(duì)于我們做php開(kāi)發(fā)的來(lái)說(shuō),empty函數(shù)(注,其實(shí)empty是一個(gè)語(yǔ)言結(jié)構(gòu)而非函數(shù),這里說(shuō)函數(shù)只是個(gè)人習(xí)慣)是再熟悉不過(guò)的一個(gè)函數(shù)了,查PHP的手冊(cè)描述如下
    2009-08-08
  • php查詢(xún)ip所在地的方法

    php查詢(xún)ip所在地的方法

    這篇文章主要介紹了php查詢(xún)ip所在地的方法,涉及對(duì)純真ip數(shù)據(jù)庫(kù)的實(shí)用,是非常常見(jiàn)的實(shí)用技巧,需要的朋友可以參考下
    2014-12-12
  • 通用PHP動(dòng)態(tài)生成靜態(tài)HTML網(wǎng)頁(yè)的代碼

    通用PHP動(dòng)態(tài)生成靜態(tài)HTML網(wǎng)頁(yè)的代碼

    最近研究PHP的一些開(kāi)發(fā)技術(shù),發(fā)現(xiàn)PHP有很多ASP所沒(méi)有的優(yōu)秀功能,可以完成一些以前無(wú)法完成的功能,例如動(dòng)態(tài)生成HTML靜態(tài)頁(yè)面,以減少服務(wù)器CPU的負(fù)載,提高用戶(hù)訪問(wèn)的速度。
    2010-03-03
  • php遞歸json類(lèi)實(shí)例

    php遞歸json類(lèi)實(shí)例

    這篇文章主要介紹了php遞歸json類(lèi)的實(shí)現(xiàn)方法,可以實(shí)現(xiàn)對(duì)索引數(shù)組及數(shù)字?jǐn)?shù)組的解析,進(jìn)而實(shí)現(xiàn)遞歸數(shù)組返回json字符串的功能,需要的朋友可以參考下
    2014-12-12
  • file_get_contents獲取不到網(wǎng)頁(yè)內(nèi)容的解決方法

    file_get_contents獲取不到網(wǎng)頁(yè)內(nèi)容的解決方法

    file_get_contents獲取不到網(wǎng)頁(yè)內(nèi)容的解決方法,需要的朋友可以參考一下
    2013-03-03

最新評(píng)論

鄂尔多斯市| 瑞丽市| 宜州市| 巴南区| 玉龙| 滨州市| 腾冲县| 南城县| 武宣县| 攀枝花市| 京山县| 隆林| 黑山县| 开鲁县| 阿克陶县| 元氏县| 图木舒克市| 武定县| 汉源县| 信丰县| 华安县| 洪泽县| 日土县| 青海省| 大理市| 宜丰县| 广南县| 象山县| 玉龙| 丘北县| 益阳市| 招远市| 咸阳市| 德兴市| 灵川县| 丰县| 瑞昌市| 衢州市| 襄垣县| 信丰县| 海阳市|