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

简介: 需求效果点击链接,当前页面加载xml文件并展示对应内容通过搜索框,搜索xml文件内节点数据,展示包含内容的节点数据功能实现Demo最终实现效果 http://loadxmldemo.

需求效果

  • 点击链接,当前页面加载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

目录
相关文章
|
3月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
88 1
|
3月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
49 0
|
13天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
2月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
2月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
2月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
33 2
|
2月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
200 8
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
3月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
3月前
|
人工智能 JavaScript 前端开发
使用Node.js模拟执行JavaScript
使用Node.js模拟执行JavaScript
34 2