手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP中将数组转成XML格式的实现代码
PHP中将数组转成XML格式的实现代码
摘要:下面是网上的复制代码代码如下:classArrayToXML{/***ThemainfunctionforconvertingtoanXML...

下面是网上的

复制代码 代码如下:

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();

}

}

下面是我编辑过的代码

复制代码 代码如下:

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();

}

数组转换成XML格式

复制代码 代码如下:

<?

$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;

}

?>

函数描述及例子

复制代码 代码如下:

<?

$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);

?>

【PHP中将数组转成XML格式的实现代码】相关文章:

PHP中显示格式化的用户输入

PHP教程:清除wordpress里恶意代码

我的论坛源代码(一)

PHP中把对象转换为关联数组代码分享

MVC模式的PHP实现

我的论坛源代码(五)

一段php加密解密的代码

PHP递归调用数组值并用其执行指定函数的方法

PHP遍历数组的方法汇总

PHP自动生成月历代码

精品推荐
分类导航