欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XML详解

程序员文章站 2022-05-14 08:49:09
...

1.什么是XML

        XML 指可扩展标记语言(EXtensible Markup Language)

        xml的标记没有被预定义过,需要自定义

        xml的宗旨是做数据传递,而非显示数据

2.XML的语法

         1.XML的顶端是XML的声明

             XML可以独立保存为   .xml的文件,也可以以字符串的类型出现

<?xml version="1.0" encoding="utf-8"?>

         2.XML标记的语法

               1.XML的标记必须成对出现

                     <person></person>

                2.XML严格区分大小写,开始和结束必须一致

                3.XML的标记允许被嵌套,但是要注意嵌套顺序将

                         

<person>
	<name>
		<FirstName></FirstName>
		<LastName></LastName>
	</name>
</person>

                 4.每个表姐都可以自定义属性,格式与html一直,但是属性值必须用""括起来

          

<person no="001"></person>

                 5.每个XML都要有一个根元素

    

<?xml version="1.0" encoding="UTF-8"?>
<studentList>
	<student1>
		<name>小罗</name>
		<age>20</age>
		<gender>男</gender>
	</student1>
	<student2>
		<name>小永</name>
		<age>21</age>
		<gender>男</gender>
	</student2>
	<student3>
		<name>小浩</name>
		<age>20</age>
		<gender>男</gender>
	</student3>
</studentList>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" value="click" onclick="getxml()">
<script>
    function createXhr() {
        var xhr=window.XMLHttpRequest? new window.XMLHttpRequest():ActiveXObject("microsoftXMLHttp");
        return xhr
    }
    function getxml() {
        var xhr=createXhr()
        xhr.open("get","../demo.xml",true)
        xhr.onreadystatechange=function () {
            if(xhr.readyState==4&&xhr.status==200) {
                var res = xhr.responseXML;
                console.log(res)
            }
        }
        xhr.send(null)
    }
</script>
</body>
</html>

XML详解

                       3.解析XML文档对象的内容

                                 1.方法

                                       elem.getElementsByTagName("XML标签的名称")

                                   返回值:返回一个包含指定元素们的“类数组”(可以用for循环遍历,可以使用下标获取值)

                                         ex:var xmlDoc=xhr.responseXML

                                             var student1= xmlDoc.getElementsByTagName("student1")

                                              获取其中的name值

student1[0].getElementsByTagName("name")[0].innerHTML

                      4.在PHP中返回XML格式的字符串

                                  1.必须增加响应的消息头

                                        header("Content-Type:application/xml")     

                                   2.按照XML的语法结构,拼接XML字符串,再响应前端 

             

<?php
/**
 * Created by PhpStorm.
 * User: Bohn
 * Date: 2018/8/25
 * Time: 21:02
 */
header("Content-Type:application/xml");
$xml="<?xml version='1.0' encoding='utf-8'?>";
$xml.="<studentList>
	<student>
		<name>小罗</name>
		<age>20</age>
		<gender>男</gender>
	</student>
	<student>
		<name>小永</name>
		<age>21</age>
		<gender>男</gender>
	</student>
	<student3>
		<name>小浩</name>
		<age>20</age>
		<gender>男</gender>
	</student3>
</studentList>";
echo "$xml";
?>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" value="click" onclick="getxml()">
<script>
    function createXhr() {
        var xhr=window.XMLHttpRequest? new window.XMLHttpRequest():ActiveXObject("microsoftXMLHttp");
        return xhr
    }
    function getxml() {
        var xhr=createXhr()
        xhr.open("get","php/demo11.php",true)
        xhr.onreadystatechange=function () {
            if(xhr.readyState==4&&xhr.status==200) {
                var res = xhr.responseXML;
                var student=res.getElementsByTagName("studentList")
                console.log(student[0].getElementsByTagName("name")[0].innerHTML)
            }
        }
        xhr.send(null)
    }
</script>
</body>
</html>

         结果

          XML详解               

 

相关标签: xml 交互