一、概述
XML(可扩展标记语言)是一种数据的描述语言,依赖其他语言的解释。
XML的设计目的是传输、结构化和存储数据,而非显示数据。其标签和文档结构由用户自定义(没有预定义标签)。
二、语法
所有的XML文档必须在首行进行声明。
XML中所有标签都必须有关闭标签,且必须有且仅有一个根标签。
标签名称可以包含字符、数字、减号、下划线和英文句号,命名规范如下:
- 严格区分大小写
- 只能以字母或下划线开头
- 标签名称之间不能存在空格或制表符
- 标签名称之前不能存在冒号
- W3C规定标签名称不能以XML开头。
所有的标签都必须被正确的嵌套。
<?xml version="1.0" encoding="UTF-8" ?> <note date="2018-7-30" author="Yao"> <text>Hello World!</text> </note>
三、解析器
解析器可以将XML转换为可通过JS操作的DOM对象。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <body> <script language="JavaScript"> function load1() { var xmlRequest = new XMLHttpRequest(); xmlRequest.open("GET", "test.xml", false);//向服务器发送请求 xmlRequest.send();//向服务器发送数据 return xmlRequest.responseXML;//获取XML形式数据 } xmlDoc = load1(); alert(xmlDoc.getElementsByTagName("sender")[0].textContent); alert(xmlDoc.getElementsByTagName("receiver")[0].textContent); alert(xmlDoc.getElementsByTagName("text")[0].textContent); </script> <script language="JavaScript"> function load2() { var parser = new DOMParser(); var str = "<note date=\"2018-07-30\">" + "<sender>Yao</sender>" + "<receiver>Lee</receiver>" + "<text>Hello World!</text>" + "</note>"; return parser.parseFromString(str, "text/xml"); } xmlDoc = load2(); alert(xmlDoc.getElementsByTagName("sender")[0].textContent); alert(xmlDoc.getElementsByTagName("receiver")[0].textContent); alert(xmlDoc.getElementsByTagName("text")[0].textContent); </script> </body> </html>