js操作xml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    
<title>js操作xml</title>
    
<script type="text/javascript">
        
var iIndex = -1;
        
var objectDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
        objectDoc.load(
"root.xml");
        
var objectItem = objectDoc.selectNodes("/Root/Item");
        
function getNode(objectDoc, strPath);
        {
            
var returnValue="";
            
var strValue = objectDoc.selectNodes(strPath);
            
if(strValue)
            returnValue 
= strValue.Text;
            
return returnValue;
        }
        
function getDataNext()
        {
            iIndex
++;
            
if(iIndex> objectItem.length -1
                iIndex 
=0;
            document.forms[
0].ProductTag.value=getNode(objectDoc,"/root/item["+iIndex+"]/ProductTag");
            document.forms[
0].Price.value=getNode(objectDoc,"/root/item["+iIndex+"]/Price");
            document.forms[
0].Quantity.value = getNode(objectDoc,"/root/item["+iIndex+"]/Quantity");
            document.forms[
0].Total.value = getNode(objectDoc,"/root/item["+iIndex+"]/Total");
        }
        
function getDataPrev()
        {
            iIndex
--;
            
if(iIndex > objectItem.length -1)
                iIndex 
=0;
            document.forms[
0].ProductTag.value=getNode(objectDoc,"/root/item["+iIndex+"]/ProductTag");
            document.forms[
0].Price.value=getNode(objectDoc,"/root/item["+iIndex+"]/Price");
            document.forms[
0].Quantity.value = getNode(objectDoc,"/root/item["+iIndex+"]/Quantity");
            document.forms[
0].Total.value = getNode(objectDoc,"/root/item["+iIndex+"]/Total");
        }
        
        
function init()
        {
            document.all.XMLTitle.innerText
=getNode(objectDoc,"/root/Cigarette");
            document.all.XMLDate.innerText 
= getNode(objectDoc,"/root/Date");
        }
    
</script>
</head>
<body onload="init();GetDataNext()">
    
<form>
        
<div id="XMLTitle"></div>
        
<br />
        
<table border="0">
            
<tr><td>产品名称</td><td><input type="text" name="ProductTag" /></td></tr>
            
<tr><td>产品价格</td><td><input type="text" name="Price" /></td></tr>
            
<tr><td>产品数量</td><td><input type="text" name="Quantity" /></td></tr>
            
<tr><td>金额合计</td><td><input type="text" name="Total" /></td></tr>
        
</table>
        
<br />
        
<div id="XMLDate"></div>
        
<br />
        
<input type="button" value="<<" onclick="getDataPrev();" />
        
<input type="button" value=">>" onclick="getDataNext();" />
    
</form>
</body>
</html>

 

节点对象属性

childNodes—返回节点到子节点的节点列表

firstChild—返回节点的首个子节点。

lastChild—返回节点的最后一个子节点。

nextSibling—返回节点之后紧跟的同级节点。

nodeName—返回节点的名字,根据其类型。

nodeType—返回节点的类型。

nodeValue—设置或返回节点的值,根据其类型。

ownerDocument—返回节点的根元素(document对象)。

parentNode—返回节点的父节点。

previousSibling—返回节点之前紧跟的同级节点。

text—返回节点及其后代的文本(IE独有)。

xml—返回节点及其后代的XML(IE独有)。


节点对象的方法

appendChild()—向节点的子节点列表的结尾添加新的子节点。

cloneNode()—复制节点。

hasChildNodes()—判断当前节点是否拥有子节点。

insertBefore()—在指定的子节点前插入新的子节点。

normalize()—合并相邻的Text节点并删除空的Text节点。

removeChild()—删除(并返回)当前节点的指定子节点。

replaceChild()—用新节点替换一个子节点。


IE6独有方法

selectNodes()—用一个XPath表达式查询选择节点。

selectSingleNode()—查找和XPath查询匹配的一个节点。

transformNode()—使用XSLT把一个节点转换为一个字符串。transformNodeToObject()—使用XSLT把一个节点转换成为一个文档。


原文网址:http://www.ykjm.net/article.asp?id=244 

 

posted @ 2010-04-21 15:26  smodi  阅读(1326)  评论(0编辑  收藏  举报