XML操作实验

这篇博客详细介绍了如何使用JavaScript的DOM接口在IE浏览器中解析和修改XML文件。首先,展示了如何读取并输出XML文件`score.xml`中的学生分数信息。接着,对`Book.xml`文件进行了操作,包括添加author元素、修改title元素内容、删除第三个元素以及添加category属性。最后,将修改后的XML文件内容以表格形式展示出来。
摘要由CSDN通过智能技术生成

XML操作实验

实验内容:
注意:以下代码均只支持IE,请在IE浏览器或者QQ浏览器兼容模式下使用。
如需修改,请自行修改读取XML文件的函数loadXML()

1编写程序,解析score.xml文件,要求输出的结果如图1所示。
图1  程序运行结果

score.xml

<?xml version="1.0" encoding="UTF-8"?>
<score>
	<name>
	        <alias>张三</alias>
		<math>89</math>
		<english>90</english>
	</name>
	<name>
		<alias>李四</alias>
		<math>92</math>
		<english>87</english>
	</name>
	<name>
		<alias>王五</alias>
		<math>95</math>
		<english>90</english>
	</name>
</score>

代码:

//请自行添加到HTML文件进行相应尝试
<script>
        window.onload=function useScoreXml(){
            var xmlFile="./score.xml";
            var xmlDoc=loadXML(xmlFile);
            var scoreList=xmlDoc.documentElement.getElementsByTagName("name");
            document.write("<table>");
            for(var i=0;i<scoreList.length;i++)
            {
                document.write("<tr>");
                var attList=scoreList[i].childNodes;
                for(var j=0;j<attList.length;j++)
                {
                    document.write("<td>"+attList[j].text+"</td>");
                }
                document.write("</tr>");
            }
        }

        //读取XML文件,只支持IE
        function loadXML(xmlFile) {
            var xmlDoc;
            xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
            return xmlDoc;
        }
 </script>

实际运行结果:
在这里插入图片描述

2、编写程序,修改下面的XML文件Book.xml,要求:
(1)为每一个book元素添加一个author子元素,元素内容自定。
(2)修改title元素的值,在文本内容的后面添加文本“(电子工业出版社)”。

例如:
<title> Java面向对象编程</title>      变为:
<title> Java面向对象编程(电子工业出版社)</title>

(3)删除原有的第三个元素。
(4)为每一个book元素添加一个category属性子元素,元素内容自定,如:
(5)使用DOM接口,javascript语言实现。
book.xml

<?xml version="1.0" encoding="utf-8" ?>
<books>
	<book>
		<title>Java面向对象编程</title>
		<author>孙卫琴</author>
	</book>
	<book>
		<title>JSP动态网页编程技术</title>
		<author>李伟民</author>
	</book>
	<book>
		<title>精通Hibernate</title>
		<author>刘洋</author>
	</book>
</books>

代码:

//请添加到相应的HTML文件进行尝试
<script>
        window.onload=function useBookXml(){
            var xmlFile="./Book.xml";
            var xmlDoc=loadXML(xmlFile);
            var x=xmlDoc.documentElement;
            var bookList=xmlDoc.getElementsByTagName("book");
            for(var i=0;i<bookList.length;i++)
            {
                //为每一个book元素添加一个author子元素
                var newNode=xmlDoc.createElement("author");
                var textNode=xmlDoc.createTextNode("The Second Author Bai");
                newNode.appendChild(textNode);
                bookList[i].appendChild(newNode);

                //修改title元素的值
                // var NewNode=xmlDoc.createElement("book");
                var newtextNode=xmlDoc.getElementsByTagName("title")[i].text+"(电子工业出版社)";
                // var newTitle=xmlDoc.createElement("title");
                // newTitle.appendChild(newtextNode);
                // NewNode.appendChild(newTitle);
                bookList[i].childNodes[0].text=newtextNode;
                // x.replaceChild(NewNode,y);

                //删除第三个元素
                if(i==2){
                    var y=bookList[i];
                    y.parentNode.removeChild(y);
                }

                //添加属性
                bookList[i].setAttribute("category","computer");
            }
            //重新加载数组
            var bookList=xmlDoc.getElementsByTagName("book");
            document.write("<table>");
            for(var i=0;i<bookList.length;i++)
            {
                document.write("<tr>");
                var attList=bookList[i].childNodes;
                for(var j=0;j<attList.length;j++)
                {
                    document.write("<td>"+attList[j].text+"</td>");
                }
                document.write("<td>"+"category属性:"+bookList[i].getAttribute("category")+"</td>");
                document.write("</tr>");
            }
        }

        //读取XML文件,只支持IE
        function loadXML(xmlFile) {
            var xmlDoc;
            xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
            return xmlDoc;
        }

    </script>

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值