使用 childNodes 的序号function getXml(vFile){
var XmlDoc;
if (ie){
XmlDoc = new ActiveXObject('Microsoft.XMLDOM');
XmlDoc.async = false;
XmlDoc.load(vFile);
}else if (ff){
XmlDoc = document.implementation.createDocument("", "", null);
XmlDoc.load(vFile);
}
return XmlDoc;
}function initXmlData(XmlDoc){
if (XmlDoc.documentElement){
initXmlList(XmlDoc.documentElement);
}else{
setTimeout(function(){initXmlData(XmlDoc);},50);
}
}function initXmlList(Xml){
for (var i = 0 ; i < Xml.childNodes.length;i ++){
// 输出
// onclick 事件参数为 i
// 调用时直接使用 XmlDom.documentElement.childNodes[i] 得到该节点
// 得到节点后的输出略
}
}var XmlDom = getXml('filepath');
initXmlData(XmlDom);

解决方案 »

  1.   

    晕,是我问题没说清楚,我已经能够得到xml文件中的内容了,在网页上显示出了 name:123  name:123  name:456我点name:123自动填表,怎么确定该添哪个,用到了下面的东西,具体应该怎么写呢?
    function test(){ 
    info="<div id=\"a2\"  onclick=\"fnGetTags(this)\">"+"adfasdf"+"</div>"
    //document.all.price.innerHTML="5000";
    document.all.result.innerHTML=info;
    }
    function fnGetTags(aa){
     document.all.price.innerHTML=aa.innerText;
     
    }
      

  2.   

    分析xml生成js数组
    然后把name作为js数组的键,当点击姓名时根据name获取js数组,然后赋值就ok了
      

  3.   

    我把代码帖出来,为了点击一个有重复的名字,取得唯一的值,是不是还得再生成个ID?<!--静态页面实现打印、tml数据xml-->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML><HEAD><title></title> 
    <META http-equiv=Content-Type content="text/html; charset=gb2312"> 
    <META content="MSHTML 6.00.2900.2180" name=GENERATOR> <SCRIPT language=JavaScript> //信息写入xml
    function RWFile(){ 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    if(!xmlDoc.load("C:\\test.xml")){ 
    xmlDoc.appendChild(xmlDoc.createElement("root")); 
    //xmlDoc.insertBefore(xmlDoc.createProcessingInstruction("xml","version='1.0'"),xmlDoc.firstChild); 

    var xname=xmlDoc.createElement("name"); 
    xname.text=$("name").innerHTML; 
    var xprice=xmlDoc.createElement("price"); 
    xprice.text=$("price").innerHTML; 
    var xdata=xmlDoc.createElement("data"); 
    xdata.text=$("data").innerHTML; 
    var xuseful=xmlDoc.createElement("useful"); 
    xuseful.text=$("useful").innerHTML; 
    var xbigprice=xmlDoc.createElement("bigprice"); 
    xbigprice.text=$("bigprice").innerHTML; 
    var xaddinform=xmlDoc.createElement("addinform"); 
    xaddinform.text=$("addinform").innerHTML;
    var xpair=xmlDoc.createElement("pair"); 
    xpair.appendChild(xname); 
    xpair.appendChild(xprice); 
    xpair.appendChild(xbigprice); 
    xpair.appendChild(xdata);
    xpair.appendChild(xuseful);
    xpair.appendChild(xaddinform);
    xmlDoc.getElementsByTagName("root")[0].appendChild(xpair); 
    var fso=new ActiveXObject("Scripting.FileSystemObject"); 
    rFile=fso.CreateTextFile("C:\\test.xml",1,true); 
    rFile.WriteLine('<?xml version="1.0"?>'); 
    rFile.WriteLine(xmlDoc.documentElement.xml); 
    rFile.close(); 
    //xmlDoc.save("C:\\u.xml"); 

    //测试用
    function test(){ 
    info="<div id=\"a2\"  onclick=\"fnGetTags(this)\">"+"adfasdf"+"</div>"
    //document.all.price.innerHTML="5000";
    document.all.result.innerHTML=info;
    }
    //function fnGetTags(aa){
     //document.all.price.innerHTML=aa.innerText;
     
    //}
    //从xml读取信息
    function RDFile(){ 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    if(!xmlDoc.load("C:\\test.xml")){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    var xpair=xmlDoc.getElementsByTagName("pair"); 
    if(xpair.length==0){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    $("result").innerHTML="" 
    for(var i=0;i<xpair.length;i++) {
    $("result").innerHTML+="收款人:"+"<br />"+xpair[i].firstChild.text+"<p />";
    info[i]="<div id=\"a2\"  onclick=\"fnGetTags(this)\">"+"</div>";
    document.all.result.innerHTML=info[i];
    }
    return;

    //删除xml中信息
    function DELFile(n){     
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  
    if(!xmlDoc.load("C:\\test.xml")){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    xmlDoc.async=false;
    xmlDoc=xmlDoc.documentElement;
    // alert(xmlDoc.xml);
    var xpair=xmlDoc.getElementsByTagName("pair"); 
    if(xpair.length==0){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    $("result").innerHTML="" 
    var j=0;
    for(var i=0;i<xpair.length;i++){
    if(document.getElementById('name').innerHTML.replace(" ","")==xpair[i].firstChild.text){
    xmlDoc.removeChild(xpair[i]);
     var oFSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var oFile = oFSO.OpenTextFile("c:\\test.xml",2); 
    oFile.write(xmlDoc.xml); 
    oFile.close();   
    $("result").innerHTML="删除成功!";
    j++;
    }
    }
    if(j==0)
    $("result").innerHTML="没有记录!";
    return;

    //从xml中查询相关信息,显示详细内容
    function SRFile(){
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    if(!xmlDoc.load("C:\\test.xml")){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    var xpair=xmlDoc.getElementsByTagName("pair"); 
    if(xpair.length==0){ 
    $("result").innerHTML="没有记录!"; 
    return; 

    $("result").innerHTML="" 
    var j=0;
    for(var i=0;i<xpair.length;i++){
    if(document.getElementById('name').innerHTML.replace(" ","")==xpair[i].firstChild.text){
    $("result").innerHTML+="收款人:"+"<br />"+xpair[i].firstChild.text+"<br />"+"金   额:"+"<br />"+xpair[i].firstChild.nextSibling.text+"<br />"+"大写金额:"+"<br />"+xpair[i].firstChild.nextSibling.nextSibling.text+"<br />"+"日  期:"+"<br />"+xpair[i].firstChild.nextSibling.nextSibling.nextSibling.text+"<br />"+"用   途:"+"<br />"+xpair[i].firstChild.nextSibling.nextSibling.nextSibling.nextSibling.text+"<br />"+"附加信息:"+"<br />"+xpair[i].lastChild.text+"<p />";
    j++;
    }
    }
    if (j==0)
    $("result").innerHTML="没有记录!";
    return;
    }function fnGetTags(aa){
     document.all.price.innerHTML=aa.innerText;
    // document.all.name.innerHTML=aa.innerText;
     }</SCRIPT><link rel="shortcut icon" href="favicon.ico" > 
    <STYLE>
    BODY {}
    </STYLE>
    </HEAD>
    <!--分栏-->
    <BODY bottomMargin=0 leftMargin=0 topMargin=0 scroll=no rightMargin=0 scrolling=no > 
    <div   id=bbs_left   style="Z-INDEX: 3; VISIBILITY: inherit;WIDTH:150px; HEIGHT:100%; float:left;frameBorder=0 scrolling=no target="main">
     <style type="text/css"> 
    <!-- 
    body { 
    overflow-x:hidden; 
    overflow-y:auto; 

    --> 
    </style><!--显示滚动条,与结果信息-->
    <DIV style="OVERFLOW: scroll; WIDTH: 150px;HEIGHT: 100%; ">
    <p><div id="result"></p></div></DIV><!--分栏条-->
    <!--<IFRAME
    style="Z-INDEX: 2; VISIBILITY: inherit; WIDTH: 180px; HEIGHT: 100%" src="left.htm" frameBorder=0 
    scrolling=yes target="main"></IFRAME>--></div> 
    <div style="background-color:#005fbd;width:5px;float:left;height:100%;CURSOR: hand;padding:300px 0px 0px 0px;" id=menuSwitch onclick=switchSysBarl()><img src="img/menu_close.gif" name="makeleft" width="10" height="0" border="0" id="makeleft" /></div><br><br><br><br><br>
    <!--建表,背景图标-->
    <table  border="0" border width=850 height=300 align=center  background="c:\\1.jpg" ><!--<tr> <td width="56" ><strong>金 额:</strong></td></tr> -->
    <tr><td><div contenteditable="true" id="price" style="position:relative; top:195px;left:100px; width: 110px; height: 20px; border: 1px; 
    border-color: Green; border-style: none;FONT-SIZE:13PX"></div></td></tr>
    <!--<tr><td width="56" ><strong>日 期:</strong></td></tr> -->
    <tr><td><div contenteditable="true" id="data" style="position:relative; top:130px;left:102px; width: 120px; height: 20px; border: 1px; 
    border-color: Green; border-style: none;FONT-SIZE:13PX"></div></td></tr> 
    <!--<tr> <td width="56" ><strong>用 途:</strong></td></tr> -->
    <tr><td><div contenteditable="true" id="useful" style="position:relative; top:166px;left:100px; width: 110px; height: 20px; border: 1px; 
    border-color: Green; border-style: none ;overflow:hidden;FONT-SIZE:13PX"></div></td></tr>
    <tr><td ><div contenteditable="true" id="bigdata" style="position:relative; top:-40px;left:370px;width: 200px; height: 20px; border: 1px; 
    border-color: Green; border-style: none ;overflow:hidden;FONT-SIZE:13PX"></div></td></tr> 
    <!--<tr><td width="56" ><strong>收款人:</strong></td></tr> -->
    <tr><td><div contenteditable="true" id="name" style="position:relative; top:-41px;left:310px;width: 285px; height: 20px; border: 1px; 
    border-color: Green; border-style: none ;overflow:hidden;FONT-SIZE:13PX"></div></td></tr> </table>
    <br>
    <!--将按钮放在一个span里,以便隐藏用-->
    <span id="span1"> 
    <DIV> 
    <OBJECT id=wb height=0 width=0 
    classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 name=wb></OBJECT> 
    <INPUT onclick=javascript:printit() type=button value=打印 
    name=button_print /> <INPUT onclick=javascript:printsetup(); type=button value=打印页面设置 
    name=button_setup /> <INPUT onclick=javascript:printpreview(); type=button value=打印预览 
    name=button_show /> <!--<button onclick='document.execCommand("saveAs")'>另存为...</button> --><input type="button" value="写入记录" onclick="RWFile()" /> 
    <input type="button" value="记录列表" onClick="RDFile()" />
    <input type="button" value="删除记录" onClick="DELFile()" />
    <input type="button" value="详细记录" onClick="SRFile()" />
    <input type="button" value="测试" onClick="test()" />
    <!--<input type="button" value="记录" onClick="xbd(321456)" />--></DIV><br><br>
    </span> 
    </BODY></HTML>
      

  4.   

    <body>
    <div id=group>
    </div>
    </body>
    <script>
    var ie = (typeof window.ActiveXObject != 'undefined');
    var ff = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
    if (!root){var root='';}function getXml(vFile){
        var XmlDoc;
        if (ie){
            XmlDoc = new ActiveXObject('Microsoft.XMLDOM');
            XmlDoc.async = false;
            XmlDoc.load(vFile);
        }else if (ff){
            XmlDoc = document.implementation.createDocument("", "", null);
            XmlDoc.load(vFile);
        }
        return XmlDoc;
    }function initXmlData(XmlDoc){
        if (XmlDoc.documentElement){
            initXmlList(XmlDoc.documentElement);
        }else{
            setTimeout(function(){initXmlData(XmlDoc);},50);
        }
    }function initXmlList(Xml){
    var obj = document.getElementById('group');
        for (var i = 0 ; i < Xml.childNodes.length;i ++){
    var node = Xml.childNodes[i];
    var divObj = document.createElement('div');
    divObj.innerHTML = node.childNodes[0].nodeName + " : " + node.childNodes[0].childNodes[0].nodeValue;
    divObj.setAttribute('Node',i)
    divObj.style.cursor = 'pointer';
    divObj.onclick = function(){
    alert(Xml.childNodes[this.getAttribute('Node')].childNodes[1].childNodes[0].nodeValue);
    }
    obj.appendChild(divObj);
            // 输出
            // onclick 事件参数为 i
            // 调用时直接使用 XmlDom.documentElement.childNodes[i] 得到该节点
            // 得到节点后的输出略
        }
    }var XmlDom = getXml('test.xml');
    initXmlData(XmlDom);
    </script>简单的写了一个
      

  5.   

    报错,obj.appendChild(divObj);
    为null或不是对象~
      

  6.   

    如果你的name重复,你怎么去确定,没有唯一的标识吗?