很多站长朋友们都不太清楚phpxml传json,今天小编就来给大家整理phpxml传json,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 XMLSerializer把xml转json 2、 如何将php返回的xml转换成json数据? 3、 php json 转 xml,从数据库调取的内容怎么转换为xml格式输出,之前弄得是json,不会转,新手。 4、 thinkphp 跨域获取 xml 转 json 5、 你还在用xml实例操作么? json来了. - PHP进阶讨论 XMLSerializer把xml转json1. JavaScript代码如下:
复制代码代码如下:
// Changes XML to JSON
function xmlToJson(xml) {
// Create the return object
var obj = {};
if (xml.nodeType == 1) { // element
// do attributes
if (xml.attributes.length > 0) {
obj["@attributes"] = {};
for (var j = 0; j < xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
}
}
} else if (xml.nodeType == 3) { // text
obj = xml.nodeValue;
}
// do children
if (xml.hasChildNodes()) {
for(var i = 0; i < xml.childNodes.length; i++) {
var item = xml.childNodes.item(i);
var nodeName = item.nodeName;
if (typeof(obj[nodeName]) == "undefined") {
obj[nodeName] = xmlToJson(item);
} else {
if (typeof(obj[nodeName].length) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
return obj;
};
2. XML代码:
复制代码代码如下:
<ALEXA VER="0.9" URL="davidwalsh.name/" HOME="0" AID="=">
<SD title="A" FLAGS="" HOST="davidwalsh.name">
<TITLE TEXT="David Walsh Blog :: PHP, MySQL, CSS, Javascript, MooTools, and Everything Else"/>
<LINKSIN NUM="1102"/>
<SPEED TEXT="1421" PCT="51"/>
</SD>
<SD>
<POPULARITY URL="davidwalsh.name/" TEXT="7131"/>
<REACH RANK="5952"/>
<RANK DELTA="-1648"/>
</SD>
</ALEXA>
3. JSON结果:
复制代码代码如下:
{
"@attributes": {
AID: "=",
HOME: 0,
URL: "davidwalsh.name/",
VER: "0.9",
},
SD = [
{
"@attributes": {
FLAGS: "",
HOST: "davidwalsh.name",
TITLE: A
},
LINKSIN: {
"@attributes": {
NUM: 1102
}
},
SPEED: {
"@attributes": {
PCT: 51,
TEXT: 1421
}
},
TITLE: {
"@attributes": {
TEXT: "David Walsh Blog :: PHP, MySQL, CSS, Javascript, MooTools, and Everything Else",
}
},
},
{
POPULARITY: {
"@attributes": {
TEXT: 7131,
URL: "davidwalsh.name/"
}
},
RANK: {
"@attributes": {
DELTA: "-1648"
}
},
REACH: {
"@attributes": {
RANK = 5952
}
}
}
]
}
如何将php返回的xml转换成json数据?如果你使用 curl 获取的 xml data
simplexml_load_string() 函数把 XML 字符串载入对象中。
$xml = simplexml_load_string($xmlStr);
$json = json_encode($xml);
如果是直接获取 URL 数据的话
$xml = simplexml_load_file($data);
$json = json_encode($xml);
php json 转 xml,从数据库调取的内容怎么转换为xml格式输出,之前弄得是json,不会转,新手。可以直接用文本读写方式,json 先用eval 解析,之后慢慢拼凑出xml格式的文件,写入文件就行了
thinkphp 跨域获取 xml 转 jsonphp xml与json间的相互转换
一,参考xml文件如下
查看复制打印?
<?xml version="1.0" encoding="UTF-8"?>
<humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>
<hao>yes</hao>
<aaaa>no</aaaa>
</sex>
<old>28</old>
</tank>
</humans>
二,xml转换成json
利用simplexml
查看复制打印?
public function xml_to_json($source) {
if(is_file($source)){ //传的是文件,还是xml的string的判断
$xml_array=simplexml_load_file($source);
}else{
$xml_array=simplexml_load_string($source);
}
$json = json_encode($xml_array); //php5,以及以上,如果是更早版本,请下载JSON.php
return $json;
}
三,json转换成xml
利用递归函数
查看复制打印?
public function json_to_xml($source,$charset='utf8') {
if(emptyempty($source)){
return false;
}
$array = json_decode($source); //php5,以及以上,如果是更早版本,请下载JSON.php
$xml ='<!--l version="1.0" encoding="'.$charset.'-->';
$xml .= $this->change($array);
return $xml;
}
public function change($source) {
$string="";
foreach($source as $k=>$v){
$string .="<".$k.">";
if(is_array($v) || is_object($v)){ //判断是否是数组,或者,对像
$string .= $this->change($v); //是数组或者对像就的递归调用
}else{
$string .=$v; //取得标签数据
}
$string .="";
}
return $string;
}
上面的方法json_to_xml,可以支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>看代码就能看明白。
你还在用xml实例操作么? json来了. - PHP进阶讨论其实我觉得用XML转递数据比较方便些XML很强,强到可以是一个数据库,考虑的比较多可以传递数据量不论多大,处理起来的复杂程度也没有多少增加PHP扩展也挺多的还可以在XML上利用XPATH搜索等等。而JSON是不是只能做传递数据用了吧?那传递大量数据的时候会有什么个状况?处理的时候又是个什么状况?
关于phpxml传json的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于关于phpxml传json的信息的详细内容...