【JavaScript】JS读取XML文件并进行搜索

需求效果

  • 点击链接,当前页面加载xml文件并展示对应内容
  • 通过搜索框,搜索xml文件内节点数据,展示包含内容的节点数据

功能实现

Demo最终实现效果 http://loadxmldemo.coderfix.cn/

核心代码


String.prototype.replaceAll = function (s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}

//查询和标签
function GetXmlByQuery(str) {
    $.ajax({
        url: "xmls/all.xml",
        dataType: 'xml',
        type: 'GET',
        timeout: 2000,
        error: function (xml) {
            alert("加载XML 文件出错!");
        },
        success: function (xml) {
            var infos = "";
            var title;
            var img;
            $(xml).find("page").each(function (i) {
                title = $(this).attr("title");
                img = $(this).attr("img");
                if (str == "") {
                    str = $("#s").val();
                }
                if (title.toLowerCase().indexOf(str) >= 0) {
                    infos += "<li class='article-entry standard'>";
                    infos += "<h4>" + title + "</h4>";
                    infos += "<span class='article-meta'>" + $(this).text() + "</span>";
                    if (img != null) {
                        infos += "<img src='" + img + "' />";
                    }
                    infos += "</li>";
                }
            });
            infos = infos.replaceAll("%t", "<br />");
            $(".articles").html(infos);
        }
    });
}

//Id传参,列表类
function GetXmlByType(tid) {
    $.ajax({
        url: "xmls/" + tid + ".xml",
        dataType: 'xml',
        type: 'GET',
        timeout: 2000,
        error: function (xml) {
            alert("加载XML 文件出错!");
        },
        success: function (xml) {
            var infos = "";
            var type;
            var title;
            var img;
            $(xml).find("page").each(function (i) {
                type = $(this).attr("type");
                title = $(this).attr("title");
                img = $(this).attr("img");
                if (type.toLowerCase().indexOf(tid) >= 0) {
                    infos += "<li class='article-entry standard'>";
                    infos += "<h4>" + title + "</h4>";
                    infos += "<span class='article-meta'>" + $(this).text() + "</span>";
                    if (img != null) {
                        infos += "<img width='150px' height='auto' src='" + img + "' />";
                    }
                    infos += "</li>";
                }
            });
            infos = infos.replaceAll("%t", "<br />");
            $(".articles").html(infos);
        }
    });
}

项目源码

Github地址 https://github.com/diandianxiyu/loadxmldemo

时间: 2025-01-21 12:59:04

【JavaScript】JS读取XML文件并进行搜索的相关文章

JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)_javascript技巧

本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: <?xml version="1.0" standalone="yes"?> <student> <stuinfo> <stuName>张秋丽</stuName> <stuSex>女 </stuSex> <stuAge>18</stuAge>

使用JS读取XML文件的方法_javascript技巧

由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究. 不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致分三类: 第一类,ie祖宗: js 提供用于创建 Automation对象的方法,new ActiveXObject("Microsoft.XMLDOM") : 第二类:firefox,opera:用构造函数 DOMParser()实例化DOMParser对象,解析xml文本,并返回xml

IE下JS读取xml文件示例代码_javascript技巧

使用JS读取xml文件,这里暂只考虑IE浏览器 step1 创建DOM对象 复制代码 代码如下: function createDom() { var xmlDoc = null; try { //IE if (typeof arguments.callee.activeXString != 'string') { var versions = [ "MSXML2.DOMDocument.6.0", "MSXML2.DOMDocument.3.0", "M

firefox中JS读取XML文件_javascript技巧

firefox中JS读取XML文件 在网上搜"firefox中JS读取XML文件"的方法,找了半天,好多都是问了没人答的.看到一堆程序员在抱怨firefox:"除了累死程序员没什么好处.",言归正传.firefox不支持ie中的ActiveXObject对象,要得到一个XML DOM有以下2种方法:1.document.implementation.createDocument("", "", null);2.window.X

JS读取XML文件示例代码_javascript技巧

复制代码 代码如下: //读取XML文件 function loadXML(xmlFile) { var xmlDoc; if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load(xmlFile); } else if (document.implementation && document.implement

JS与jQ读取xml文件的方法_javascript技巧

废话不多说了,直接给大家贴代码了,具体代码如下所示: jquery读取xml文件 <!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <

javascript读取XML文件实现程序

 代码如下 复制代码   1.通过JS读取XML文件,主要是判断各个浏览器 View Code // 加载xml文档        var loadXML = function (xmlFile) {             var xmlDoc;             if (window.ActiveXObject) {                 xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE浏览器               

javascript读取Xml文件做一个二级联动菜单示例

 这篇文章主要介绍了使用javascript中读取Xml文件做成的一个二级联动菜单,需要的朋友可以参考下  代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>  <head>  <title>menu2level.html</title>  <meta http-equiv="content-type&quo

js操作XML文件的实现方法兼容IE与FireFox_javascript技巧

最近项目中用到了xml,需求是用户安装产品时先把一系列的数据保存到xml文件中,当执行到最后一步时才写入数据库,这样最大限度的减少了数据库的访问,于是不得不纠结在各浏览器的兼容性的问题(悲哀啊....) 进入正文 下面是一个xml文件 (createInstal.xml) <?xml version="1.0" encoding="utf-8"?> <info> <Item> <id descrption="级别&