本文目录一览:
php 怎么将数组转xml的函数
没有现成函数,只能自己写;我有一个别人写的函数:
?php
class A2Xml {
private $version = '1.0';
private $encoding = 'UTF-8';
private $root = 'root';
private $xml = null;
function __construct() {
$this-xml = new XmlWriter();
}
function toXml($data, $eIsArray=FALSE) {
if(!$eIsArray) {
$this-xml-openMemory();
$this-xml-startDocument($this-version, $this-encoding);
$this-xml-startElement($this-root);
}
foreach($data as $key = $value){
if(is_array($value)){
$this-xml-startElement($key);
$this-toXml($value, TRUE);
$this-xml-endElement();
continue;
}
$this-xml-writeElement($key, $value);
}
if(!$eIsArray) {
$this-xml-endElement();
return $this-xml-outputMemory(true);
}
}
}
$res = array(
'hello' = '11212',
'world' = '232323',
'array' = array(
'test' = 'test',
'b' = array('c'='c', 'd'='d')
),
'a' = 'haha'
);
$xml = new A2Xml();
echo $xml-toXml($res);
多维PHP数组怎么转换成xml格式的数据
public function arrayToXml($arr){
$xml = "xml";
foreach ($arr as $key=$val){
if(is_array($val)){
$xml.="".$key."".arrayToXml($val)."/".$key."";
}else{
if (is_numeric($val)){
$xml.="".$key."".$val."/".$key."";
}else{
$xml.="".$key."![CDATA[".$val."]]/".$key."";
}
}
}
$xml.="/xml";
return $xml;
}
求一个PHP把一维数组转化为xml格式和再从xml格式转回一维数组的方法,求示例代码。谢谢。
代码
Code highlighting produced by Actipro CodeHighlighter (freeware);// Xml 转 数组, 包括根键,忽略空元素和属性,尚有重大错误
function xml_to_array( $xml )
{
$reg = "/(\\w+)[^]*?([\\x00-\\xFF]*?)\\/\\1/";
if(preg_match_all($reg, $xml, $matches))
{
$count = count($matches[0]);
$arr = array();
for($i = 0; $i $count; $i++)
{
$key= $matches[1][$i];
$val = xml_to_array( $matches[2][$i] ); // 递归
if(array_key_exists($key, $arr))
{
if(is_array($arr[$key]))
{
if(!array_key_exists(0,$arr[$key]))
{
$arr[$key] = array($arr[$key]);
}
}else{
$arr[$key] = array($arr[$key]);
}
$arr[$key][] = $val;
}else{
$arr[$key] = $val;
}
}
return $arr;
}else{
return $xml;
}
}
// Xml 转 数组, 不包括根键
function xmltoarray( $xml )
{
$arr = xml_to_array($xml);
$key = array_keys($arr);
return $arr[$key[0]];
}