博客列表 >JavaScript解析XML,js解析xml字符串

JavaScript解析XML,js解析xml字符串

猿数据
猿数据原创
2017年07月28日 23:02:201738浏览

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>


   


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议