JavaScript 操作XML

个人原创,欢迎转载,转载请注明出处http://blog.csdn.net/bud_icelf       QQ:909648986


JavaScript 操作XML


什么是XML

XML(Extensible Markup Language) 可扩展标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

xml 实例

<?xml version="1.0" encoding="utf-8"?>
<books>
	<book>
		<title>三国演义</title>
		<author>罗贯中</author>
		<price>48.00</price>
	</book>
	<book>
		<title>西游记</title>
		<author>吴承恩</author>
		<price>37.00</price>
	</book>
	<book>
		<title>水浒传</title>
		<author>施耐庵</author>
		<price>40.00</price>
	</book>
	<book>
		<title>红楼梦</title>
		<author>曹雪芹</author>
		<price>35.00</price>
	</book>
</books>


<?xml version="1.0" encoding="utf-8"?>
XML 声明,version="1.0"定义 XML 的版本是1.0, encoding="utf-8"定义 XML使用的编码是utf-8(万国码)


<books>
...
</books>
XML 文档必须包含唯一一个根元素,该XML的根元素是<books>.


<book>...</book>
<book>...</book>
...
这些<book>元素包含在<books>中,他们是父子关系,<book>与<book>之间是兄弟或姐妹关系.


<book>
<title>...</title>
<author>...</author>
<price>...</price>
</book>
<book>元素包含三个子元素,分别是<title>,<author>,<price>.


Javascript读取XML实例

<!DOCTYPE>
<html>
<head>
	<meta charset="gbk">
</head>
<body>
	<div>
		<table id="bookTable" border="2">
			<tr>
				<th>书名</th>
				<th>作者</th>
				<th>价格</th>
			</tr>
		</table>
	</div>
	<script>
		var xmlDoc;
		if(window.ActiveXObject){
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = false;
			xmlDoc.load("test.xml");
		}else{
			xmlHttp=new XMLHttpRequest();
			xmlHttp.open("GET","test.xml",false);
			xmlHttp.send();
			xmlDoc=xmlHttp.responseXML;
		}
		var bookTable=document.getElementById("bookTable");
		var books=xmlDoc.getElementsByTagName("book");
		for(i=0;i<books.length;i++){
			var tr=document.createElement("tr");
			var titleTd=document.createElement("td");
			var authorTd=document.createElement("td");
			var priceTd=document.createElement("td");
			
			var title=books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
			var author=books[i].getElementsByTagName("author")[0].childNodes[0].nodeValue;
			var price=books[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
			
			var titleTextNode=document.createTextNode(title);
			var authorTextNode=document.createTextNode(author);
			var priceTextNode=document.createTextNode(price);
			
			titleTd.appendChild(titleTextNode);
			authorTd.appendChild(authorTextNode);
			priceTd.appendChild(priceTextNode);
			
			tr.appendChild(titleTd);
			tr.appendChild(authorTd);
			tr.appendChild(priceTd);
			
			bookTable.appendChild(tr);
		}
	</script>
</body>
</html>



效果显示



if(window.ActiveXObject)
检测浏览器,根据不同的浏览器,获取 XML DOM 对象,IE5,IE6 返回true.


var books=xmlDoc.getElementsByTagName("book");
获取所有<book>节点数组.


var tr=document.createElement("tr");
创建节点<tr>元素.


var title=books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
获取<book>子元素<title>的文本.


var titleTextNode=document.createTextNode(title);
创建文本节点.


titleTd.appendChild(titleTextNode);
向<td>加入文本节点.


tr.appendChild(titleTd);
向<tr>元素追加新元素<td>.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值