当前位置: 代码网 > it编程>网页制作>Xml > javascript xml xsl取值及数据修改

javascript xml xsl取值及数据修改

2024年05月15日 Xml 我要评论
javascript xml xsl取值及数据修改

3.index.html--用javascript导入数据并能修改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>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>测试</title>
</head>
<link rel="stylesheet" type="text/css" href="focusform.css"/>
<script language="javascript" src="form.js"></script>
<script type="text/javascript" src="detect.js"></script>
<script type="text/javascript" src="xmldom.js"></script>
<script type="text/javascript">
//载入xml与xsl文件
    var oxml = new xmldom();
    var oxsl = new xmldom();
    oxml.async = false;//同步载入
    oxsl.async = false;
    oxml.load("example.xml");
    oxsl.load("example.xsl");
    if (oxml.parseerror != 0) {
        var oerror = oxml.parseerror;         
        alert("an error occurred:\nerror code: "
              + oerror.errorcode + "\n"
              + "line: " + oerror.line + "\n"
              + "line pos: " + oerror.linepos + "\n"
              + "reason: " + oerror.reason);
    }
    if (oxsl.parseerror != 0) {
        var oerror = oxsl.parseerror;         
        alert("an error occurred:\nerror code: "
              + oerror.errorcode + "\n"
              + "line: " + oerror.line + "\n"
              + "line pos: " + oerror.linepos + "\n"
              + "reason: " + oerror.reason);
    }
    var sresult = oxml.transformnode(oxsl);
    //alert(sresult);
//一些操作
function btnsub(){
    var fes = document.forms[0].elements;
    for(var i = 0;i<fes.length;i++){
        var name = fes[i].name;
        if(name.indexof('re_')!=-1){
            var xmlid=name.substring(3,name.length);
            var obj;// =  oxml.getelementbyid("items_1");//xml的dom里没有这个方法?
            var oitems1 = oxml.getelementsbytagname("items");//也可以用xpath实现。
            var oitems2 = oxml.getelementsbytagname("item");
            for(var j=0;j<oitems1.length;j++){
                if(oitems1[j].getattribute('id')==xmlid){
                    obj = oitems1[j];
                    break;
                }
            }
            for(var j=0;j<oitems2.length;j++){
                if(oitems2[j].getattribute('id')==xmlid){
                    obj = oitems2[j];
                    break;
                }
            }
            if(obj){
                obj.childnodes[0].text = fes[i].value;
            }else{
                alert("在xml中未找到id为"+xmlid+"的items或item");
            }
        }
        if(name.indexof('of_')!=-1){
            var xmlid=name.substring(3,name.length);
            var oitems1 = oxml.getelementsbytagname("items");
            var oitems2 = oxml.getelementsbytagname("item");
            for(var j=0;j<oitems1.length;j++){
                if(oitems1[j].getattribute('id')==xmlid){
                    obj = oitems1[j];
                    break;
                }
            }
            for(var j=0;j<oitems2.length;j++){
                if(oitems2[j].getattribute('id')==xmlid){
                    obj = oitems2[j];
                    break;
                }
            }
            if(obj){
                obj.childnodes[1].text = fes[i].value;
            }else{
                alert("在xml中未找到id为"+xmlid+"的items或item");
            }        
        }
    }
    alert(oxml.xml);
    //alert(oxml.childnodes[2].xml);
    return false;
}

</script>
</head>

<body>
<form name="form1" action="test.jsp" method="post" onsubmit="return btnsub();">
<script type="text/javascript">
    document.write(sresult);
</script>
</form>
</body>
</html>
需要用到的辅助文件
4.focusform.css--样式文件
5.form.js文本框的效果
6.detect.js--浏览器及操作系统识别(取自javascript高级程序设计)
7.xmldom.js--不同浏览器xml操作统一(取自javascript高级程序设计) 
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com