本文目錄一覽:
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]];
}
原創文章,作者:QBZC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132541.html