一聚教程网:一个值得你收藏的教程网站

热门教程

javascript 解析xml成html方法

时间:2022-06-25 16:48:29 编辑:袖梨 来源:一聚教程网

JavaScript 端:

 代码如下 复制代码

//初始化页面
function init() {
    var ary = JSONToArray(XMLReader("node","content.dibi"));
    var divtoc = document.getElementById("div_toc");
    pageCount = ary.length;
    for(k = 0; k < ary.length; k++){
        obj = eval('(' + ary[k] + ')');
        divtoc.innerHTML += ""
                         + obj.label + "
      ";
    }

    page = 1;
    changeImage(page);

    var pageManager = document.getElementById("div_page");
    pageManager.innerHTML = "上一页      "
                          + "下一页

";

    var ary2 = JSONToArray(XMLReader("meta","content.dibi"));
    var divmeta = document.getElementById("div_meta");
    var styStr = "

"
    for(l = 0; l < ary2.length; l++){
        obj2 = eval('(' + ary2[l] + ')');
        styStr += "";
    }
    divmeta.innerHTML = styStr + "
" + obj2.name + "" + obj2.content + "
";
}

//解析.dibi 文件。
function XMLReader(key,fileName) {
    var parse = BrowserValidator();
        parse.load(fileName);
    var json = "";
    try{
        var dom = parse.documentElement;
        var attrLength = 0;
        for (i = 0; i < dom.getElementsByTagName(key).length; i++) {
            attrLength = dom.getElementsByTagName(key)[i].attributes.length;
            objMsg = ",{";
            for(j = 0; j < attrLength; j++){
                objMsg += "'" + dom.getElementsByTagName(key)[i].attributes[j].name
                     + "':'" + dom.getElementsByTagName(key)[i].attributes[j].value + "',";
            }
            objMsg = objMsg.substring(0,objMsg.length-1); 
            json += objMsg + "}";
        }
        json = json.substring(1);
    }catch(e){}
    return json;
}

//判断浏览器类型。支持 IE ,fireFox。
function BrowserValidator(){
    var result;
    if(!window.DOMParser && window.ActiveXObject) {
        result = new ActiveXObject("Microsoft.XMLDOM");
        result.async = false;
    }
    else if(document.implementation && document.implementation.createDocument) {
        result = document.implementation.createDocument("", "", null); 
        result.async = false;
    }
    return result;
}

var page = 1;   //当前页
var pageCount;  //总页数

//根据点击改变页面图片
function changeImage(page1){
    page = page1;
    var divimg = document.getElementById("div_img");
    divimg.innerHTML = "";
}

//上页及下页
function changePage(flag){
    if(flag == 0 && page > 1){
        page--;
    }
    if(flag == 1 && page < pageCount){
        page++;
    }
    changeImage(page);
}


//将 JSON 数据转换成数组
function JSONToArray(json){
    return json.replace(new RegExp("},", "g"), "}|").split("|");
}

HTML

端:

 代码如下 复制代码


   
   







热门栏目