XMl
可扩展的文本标记语言,用来传输数据和保存数据
整个文档是一个文档节点
每个XMl标签是一个元素节点
包含在xml标签内的文本是文本节点
每个xml属性是一个属性节点
注释属于一个注释节点
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
<?xml version="1.0" encoding="utf-8"?>//声明版本和字符集
<root>//根元素
<child>
<subchild>.....</subchild>
</child>
</root>
ps:
xml的主要作用是为了信息传递
xml必须有根元素
所有的xml标签必须由关闭标签
xml对大小写敏感
xml必须正确的嵌套
xml属性加引号
JS解析Xml
JS解析xml文件
//创建文档
var xmldoc=document.implementation.createDocument('','',null);
//是否异步,true同步,false异步
xmldoc.async=false;
//xml文件
xmldoc.load('1.xml');
JS解析字符串
var str="<?xml version='1.0' ...........";
//创建文档对象
var parser=new DOMParser();//创建文档对象
var xmldoc=parser.parser.parserFromString(str,'text/xml')
代码部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js解析xml文档</title>
</head>
<body>
<script type="text/javascript">
//创建文档
var xmlDoc=document.implementation.createDocument("","",null);
//是否异步 true同步 false 异步
xmlDoc.async=false;
//xml文件
xmlDoc.load("1.xml");
//解析文档中的内容
// console.log(xmlDoc);
//获取文档中标签元素对象
var names = xmlDoc.getElementsByTagName('name');
// console.log(names);
var arr = [];
for (var i = 0; i < names.length; i++) {
arr[arr.length] = names[i].innerHTML;
};
console.log(arr);
//获取属性
console.log(names[0].getAttribute('class'));
</script>
</body>
</html>
xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version='1.0' encoding='utf-8'?>
<movies>
<movie>
<name class='iloveyou'>辩护人</name>
<country>韩国</country>
</movie>
<movie>
<name>V字仇杀队</name>
<country>美国</country>
</movie>
<movie>
<name>盗梦空间</name>
<country>美国</country>
</movie>
</movies>
代码解析xml字符串:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js解析xml字符串</title>
</head>
<body>
<script type="text/javascript">
var str = "<?xml version='1.0' encoding='utf-8'?> <movies> <movie> <name>辩护人</name> <country>韩国</country> </movie> <movie> <name>V字仇杀队</name> <country>美国</country> </movie> <movie> <name>盗梦空间</name> <country>美国</country> </movie> </movies>";
//创建文档对象
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(str,"text/xml");
//提取数据
var countrys = xmlDoc.getElementsByTagName('country');
var arr = [];
for (var i = 0; i < countrys.length; i++) {
arr.push(countrys[i].textContent);
};
console.log(arr);
</script>
</body>
</html>