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

巢德华
2023-12-01

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')


代码部分:


<!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>

  1. xml

<?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字符串:

<!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>


 类似资料: