1、XML的基本语法
<!-- 声明XML文件 注意:可以不声明,如果声明则要放在文档的第一行 -->
<?xml version="1.0" encoding="utf-8"?>
<!--
1、必须有根标签
2、标签名称可以自己定义,不建议使用特殊字符,建议使用字母数字下划线
3、所有的标签都是成对的闭合标签
4、标签对大小写敏感
-->
<root>
<student>
<name>张三</name>
<age>18</age>
</student>
<student>
<name>李四</name>
<age>20</age>
</student>
</root>
2、php解析XML
①php解析XML文件或者字符串所使用的函数
//将XML文件解释成一个对象
$xml = simplexml_load_file("./test.xml"); //test.xml文件即XML基本语法中的示例代码
var_dump($xml);
//将XML字符串解释成一个对象
$strXML = "<root><student><name>张三</name><age>18</age></student><student><name>李四</name><age>20</age></student></root>";
$xml = simplexml_load_string($strXML);
var_dump($xml);
结果如下:
②通过foreach或者for循环获取XML中的值
//将XML文件解释成一个对象
$xml = simplexml_load_file("./test.xml");
//foreach遍历取出name
$names = "";
foreach($xml->student as $v){
$names .= $v->name;
}
//echo $names; //结果:张三李四
//for循环取出name
$names = "";
for($i=0;$i<count($xml->student);$i++){
$names .= ($xml->student)[$i]->name;
}
echo $names; //结果:张三李四
3、php函数解析XML的原理
XML在解析时一共要经历三个步骤:
①读取XML文档到内存;
②形成DOM树结构;
4、php生成XML并返回给Ajax
直接构建字符串即可,示例:
//构建XML字符串
$strXML = "<root><student><name>张三</name><age>18</age></student><student><name>李四</name><age>20</age></student></root>";
//响应头声明文件类型
header("Content-Type:text/xml");
//返回数据
echo $strXML;
5、Ajax获取XMl数据
通过Ajax对象.responseXML接收服务器传来的XML数据,Js会将其解析为DOM树,所以,Js操作XML数据就和操作html节点的数据一样。
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
var xml = xhr.responseXML;
//操作XML数据
var name = xml.getElementsByTagName("name");
var names = "";
for(var i=0;i<name.length;i++){
//注意:此处只能使用innerHTML,这里name对象并没有innerText属性
names += name[i].innerHTML;
}
console.log(names); //结果:张三李四
}
}
xhr.open("get","./test.php");
xhr.send();
</script>
网友评论