javascript 解析xml成html方法

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 += "<a href='javascript:changeImage(" + obj.page.substring(obj.page.length-1) + ")'>"
                         + obj.label + "</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    }

    page = 1;
    changeImage(page);

    var pageManager = document.getElementById("div_page");
    pageManager.innerHTML = "<a href='javascript:changePage(0)'>上一页</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
                          + "<a href='javascript:changePage(1)'>下一页</a><br/><br/>";

    var ary2 = JSONToArray(XMLReader("meta","content.dibi"));
    var divmeta = document.getElementById("div_meta");
    var styStr = "<table>"
    for(l = 0; l < ary2.length; l++){
        obj2 = eval('(' + ary2[l] + ')');
        styStr += "<tr><td>" + obj2.name + "</td><td>" + obj2.content + "</td></tr>";
    }
    divmeta.innerHTML = styStr + "</table>";
}

//解析.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 = "<img width='500' src = 'images/" + page +".jpg'/>";
}

//上页及下页
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

端:

 代码如下 复制代码
<html>
<head>
    <title></title>
    <script language="javascript" type="text/javascript" charset='gbk' src="xmlhelper.js"></script>
</head>
<body onload="init()">
<div id="div_toc"></div>
<div id="div_img"></div>
<div id="div_page"></div>
<div id="div_meta"></div>
</body>

</html>

时间: 2024-12-24 18:55:48

javascript 解析xml成html方法的相关文章

javascript解析xml实现省市县三级联动的方法_javascript技巧

本文实例讲述了javascript解析xml实现省市县三级联动的方法.分享给大家供大家参考.具体实现方法如下: (该方法适用于任何常用浏览器) <body> <div> <span> <select id="sheng" style="width: 100px"></select> </span> <span> <select id="shi" style=

JavaScript获取XML数据的方法

 这篇文章主要介绍了JavaScript获取XML数据的方法,需要的朋友可以参考下 Hot.xml文件 :   代码如下: <?xml version="1.0" encoding="gb2312"?>  <root>  <item>  <name>刘亦菲</name>  <url>MingXing/LiuYiFei.htm</url>  <color>red</c

jQuery+ajax读取并解析XML文件的方法_jquery

本文实例讲述了jQuery+ajax读取并解析XML文件的方法.分享给大家供大家参考,具体如下: ajax.xml: <?xml version="1.0" encoding="UTF-8"?> <stulist> <student email="1@1.com"> <name>zhangsan</name> <id>1</id> </student>

如何用javascript解析xml

问题描述 如何用javascript解析xml 解决方案 解决方案二:可以用ajax来解析,不过会比较麻烦,代码量多.如://设置xmlvarxml="<chats><chat>";xml+="<touser>"+document.all.toUser.value+"</touser>";xml+="<content>"+document.all.content.va

Android开发之DOM解析xml文件的方法_Android

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

SQL Server解析XML数据的方法详解_MsSql

本文实例讲述了SQL Server解析XML数据的方法.分享给大家供大家参考,具体如下: --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name="Email">dongsheng@xxyy.com</Info> <Info Name="Phone">678945546</

java解析xml二种方法

java解析xml二种方法 配置文件为: <?xml version="1.0" encoding="utf-8"?> <config>     <point name="test1">         <name>zhang3</name>         <address>abcdefg</address>         <email>a@b.c

php遍历解析xml字符串的方法_php技巧

本文实例讲述了php遍历解析xml字符串的方法.分享给大家供大家参考,具体如下: <?php $content = <<<XML <?xml version="1.0" encoding="UTF-8"?> <test> <global_setting> <ping_protocol>HTTP</ping_protocol> <ping_port>80</ping_