$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 赋给xmlstr
$xmlStr ='
<root>
<members>
<member>
<name>aaa</name>
</member>
<member>
<name>bbb</name>
</member>
<member>
<name>ccc</name>
</member>
<member>
<name>ddd</name>
</member>
</members>
<members>
<member>
<name>11</name>
</member>
<member>
<name>22</name>
</member>
<member>
<name>33</name>
</member>
<member>
<name>44</name>
</member>
</members>
</root>
';
$dom = new DOMDocument('10');
$dom ->loadXML($xmlStr);
$xml = simplexml_import_dom($dom);
echo $xml ->members[0]->member[0]->name; // aaa
echo $xml ->members[1]->member[0]->name; // 111
echo "<p>";
/
循环列出 第一个 members 的 name;
/
foreach($xml ->members[0] as $v)
{
echo $v->name"<br>";
}
>如果你使用curl获取的xmldata\x0d\simplexml_load_string()函数把XML字符串载入对象中。\x0d\$xml=simplexml_load_string($xmlStr);\x0d\$json=json_encode($xml);\x0d\如果是直接获取URL数据的话\x0d\$xml=simplexml_load_file($data);\x0d\$json=json_encode($xml);echo不就出来了?XML和PHP也有相互转换的函数
xml_parser_create — 建立一个 XML 解析器
xml_parser_free — 释放指定的 XML 解析器第一种方法:
复制代码
代码如下:
<php
header("Content-type:
text/xml");
echo
"<xml
version=/"10/"
encoding=/"UTF-8/">";
echo
"<users>";
echo
"<user>";
echo
"<name>";
echo
"小小菜鸟";
echo
"</name>";
echo
"<age>";
echo
"24";
echo
"</age>";
echo
"<sex>";
echo
"男";
echo
"</sex>";
echo
"</user>";
echo
"<user>";
echo
"<name>";
echo
"艳艳";
echo
"</name>";
echo
"<age>";
echo
"23";
echo
"</age>";
echo
"<sex>";
echo
"女";
echo
"</sex>";
echo
"</user>";
echo
"</users>";
>
第二种方法:
复制代码
代码如下:
<php
header("Content-type:
text/xml");
echo
"<xml
version=/"10/"
encoding=/"UTF-8/">";
echo
"<users><user><name>小小菜鸟</name><age>24</age><sex>男</sex></user><user><name>艳艳</name><age>23</age><sex>女</sex></user></users>";
>
第三种方法:
复制代码
代码如下:
<php
/
用PHP的DOM控件来创建XML输出
设置输出内容的类型为xml
/
header('Content-Type:
text/xml;');
//创建新的xml文件
$dom
=
new
DOMDocument('10',
'utf-8');
//建立<response>元素
$response
=
$dom->createElement('response');
$dom->appendChild($response);
//建立<books>元素并将其作为<response>的子元素
$books
=
$dom->createElement('books');
$response->appendChild($books);
//为book创建标题
$title
=
$dom->createElement('title');
$titleText
=
$dom->createTextNode('PHP与AJAX');
$title->appendChild($titleText);
//为book创建isbn元素
$isbn
=
$dom->createElement('isbn');
$isbnText
=
$dom->createTextNode('1-21258986');
$isbn->appendChild($isbnText);
//创建book元素
$book
=
$dom->createElement('book');
$book->appendChild($title);
$book->appendChild($isbn);
//将<book>作为<books>子元素
$books->appendChild($book);
//在一字符串变量中建立XML结构
$xmlString
=
$dom->saveXML();
//输出XML字符串
echo
$xmlString;
>出错的原因在于PHP程序输出编码和XML文件的编码不一致所导致 方法一: 使用utf-8编码,修改方法如下: 一把两个gb2312改为utf-8 二在xml文件上点右链,选择用记事本打开,另存为,编码由ansi改为,覆盖保存。 方法二: 直接设置PHP文件格式为 你的想法是正确的,不需要另外生成xml文件。你只需要把特定格式的数据发回去就好了
关于ajax,我建议你用jquery的封装函数ajax
使用方法如下:
testhtml
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401//EN"
">
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)