当前位置:首页 » 编程语言 » php数组转换xml

php数组转换xml

发布时间: 2022-11-22 00:08:51

A. 新手求助高手解决 php数组转换XML问题,研究好久都不行.

<?php
$team=array(
'id'=>'22955',
'video_order_id'=>'22955',
'is_audio'=>'0',
'status_format'=>'待审核',
'ftp_path'=>'2013/1374/5695/2479/137456952479.ssm/',
'lists'=>array(array('PreviewMTA'=>'A','PreviewMTB'=>'B')),
'lists1'=>array(array('PreviewMTA'=>'B'))
);

echosaveXML($team);
functionsaveXML($arr,$root='response'){
if(!preg_match('/[a-zA-Z][a-zA-Z0-9_]/',$root)){
$root='response';
}
$xml=newDOMDocument('1.0','UTF-8');
$xml->formatOutput=true;
$response=$xml->createElement($root);
$xml->appendChild($response);
foreach($arras$key=>$value){
if(is_array($value)){
$first=$xml->createElement($key);
_createElement($value,$first,$xml);
}else{
$first=$xml->createElement($key,$value);
}
$response->appendChild($first);
}
return$xml->saveXML();
//$xml->save('create_xml.xml');
}
function_createElement($arr,$parentDom,&$xml){
foreach($arras$value){
$list=$xml->createElement('list');
foreach($valueas$k=>$val){
if(is_array($val)){
$dom=$xml->createElement($k);
_createElement($val,$dom,$xml);
}else{
$dom=$xml->createElement($k,$val);
}
$list->appendChild($dom);
}
$parentDom->appendChild($list);
}
}
?>

可能和你要的结果有偏离

B. 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);

C. PHP如何将数组写入XML请直接提供代码。感谢!!!

<?php
$imgdir = '你存放图片的文件夹';
$logfile = '你要写入的文件名';
$submit = $_POST['submit'];
if($submit == 'write'){
include('lib/write.class.php');
$wt = new writeTo();
$wt->while($imgdir,$logfile);
}
?>
<input type = 'submit' name = 'submit' value = 'write'>
这个是前提文件

下面的是类文件
<?php
class writeTo{
function isjpg($filename){
/*
用来判断是否是 .jpg结尾的文件 由于本机器无JPG 所以使用PHP
代替了JPG 你自己使用的时候请自行替换
*/
if(preg_match('/\.php$/',$filename)){
return true;
}
false;
}
function listjpg($dir){//查看文件夹内的所有JPG文件名并存入数组
$arr = array();
if(is_dir($dir)){
$dp=dir($dir);
while($file=$dp->read()){
if($this->isjpg($file)){
$arr[substr($file,0,(strlen($file)-4))] = $file;
}
}
}
$dp->close();
return $arr;
}
function write($dir,$filename){//利用前面生成的数字重写文件
if($link = fopen($filename,'w+')){
//由于使用W+所以如果存在该文件请给予读写权限 如不存在则程序自动建立
$str = "<?xml version='1.0' encoding='utf-8'?>\n";
$str .= " <path>\n";
$arr = $this->listjpg($dir);
foreach($arr as $key => $v){
$str .= " <url info=".$key.">pic/".$v."</url>\n";
}
$str .= " <\path>\n";
if(fwrite($link,$str)){
fclose($link);
return true;
}
return false;
}
return false;
}
}

D. 我想这样用PHP操作XML文件,如下图

把xml转成数组,操作数组,再把数组转成xml

E. 多维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;
}

F. php json 转 xml,从数据库调取的内容怎么转换为xml格式输出,之前弄得是json,不会转,新手。

可以直接用文本读写方式,json 先用eval 解析,之后慢慢拼凑出xml格式的文件,写入文件就行了

G. php中发布webservice的时候如何将数组转换成XML格式输出

直接用json不是更好

H. PHP xml转换成数组

xml转array方法没错,只是xml中有三个<list>,而数组中却不能出现三个$arr['list'],所以这个方法自动把三个<list>中的内容放进了一个二维数组中。
可以尝试直接取$arr['list'],取出结果应该就是 Array ( [0] => 1 [1] => 2 [2] => 3 ) 了。

I. php如何通过xml传递数据

获取request中body的字符串数据,比如一个数组转成xml后,你用post方式给服务器发送xml的字符串,服务器就用file_get_contents('php://input') 去读取xml格式 然后转成数组即可

J. 求一个PHP把一维数组转化为xml格式和再从xml格式转回一维数组的方法,求示例代码。谢谢。

代码

Code highlighting proced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// 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]];
}

热点内容
如何登录男朋友的微信密码 发布:2025-01-16 07:41:14 浏览:194
宝骏解压流程 发布:2025-01-16 07:35:35 浏览:2
两匹压缩机多少钱 发布:2025-01-16 07:29:19 浏览:635
个人pc搭建游戏服务器 发布:2025-01-16 07:27:09 浏览:970
存储剩余照片 发布:2025-01-16 07:25:01 浏览:50
ftp解除限制上传文件个数 发布:2025-01-16 07:16:26 浏览:348
梯度下降法python 发布:2025-01-16 07:10:43 浏览:520
加载并编译着色器apex 发布:2025-01-16 07:00:08 浏览:59
方舟出售脚本 发布:2025-01-16 06:57:55 浏览:955
钉钉代理服务器Ip地址和瑞口 发布:2025-01-16 06:57:05 浏览:699