Ajax直接返回xml流,并应用于xslt

2023-10-25 14:18
文章标签 xml 应用 直接 返回 ajax xslt

本文主要是介绍Ajax直接返回xml流,并应用于xslt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 处理页面:

        String name = Request.QueryString["zfname"].ToString();
        DataSet myData = new DataSet();
        myData.ReadXml(Server.MapPath("~/XML/zcfg.xml"));
        DataRow[] row = myData.Tables["SUBZCFGINFO"].Select("FATHER_ID = '" + name + "'");
        DataTable table = myData.Tables["SUBZCFGINFO"].Clone();
        foreach (DataRow drow in row)
            table.ImportRow(drow);
        DataSet xml = new DataSet();
        xml.Tables.Add(table);
        XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
        xml.WriteXml(writer);
        writer.Flush();
        Response.End();
        writer.Close();

        //在这里声明了一个XmlTextWriter对象,应用于http输出流然后将DataSet数据集用XML形式装入数据流,这样就可以返回一个Xml文档的字符串

       //在接受页中用loadXML方法将这个带有XML格式的字符串转换成XML对象,然后利用Xslt文档进行转换成HTML格式

 

接受页面:

      <script type="text/javascript">
        var XHRobject = false;
        if(window.XMLHttpRequest)
        {
            XHRobject = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
            XHRobject = new ActiveXObject("Microsoft.XMLHTTP");
        }

        function sendRequest(file_id,name)
        {
            title.innerText = name;
            XHRobject.open("Get","GetZcfgSub.aspx?zfname="+file_id,true);
            XHRobject.onreadystatechange = getData;
            XHRobject.send(null);
        }
        function getData()
        {
            if(XHRobject.readystate == 4 && XHRobject.status == 200)
            {
                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.loadXML(XHRobject.responseText);
                var xslDoc = loadDocument("../XSL/XSLZcfgSub.xsl");
                result.innerHTML = xmlDoc.transformNode(xslDoc);  
            }
        }
       
        function loadDocument(filename)
        {
            var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(filename);
            return xmlDoc;
        }
        function openZgWindow(filename)
        {
            window.showModalDialog("../html/"+filename+".htm",'标题',"dialogHeight: 30;dialogWidth: 40;edge:Raised;center:Yes;help:No;resizable:No;status:No;");
        }
      </script>

 

 

xslt文档:

     <?xml version="1.0" encoding="gb2312"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:template match="/">
  
    <!--
        This is an XSLT template file. Fill in this area with the
        XSL elements which will transform your XML to XHTML.
    -->
 
   
      <table style="width:80%;height:100%">
        <xsl:for-each select="//SUBZCFGINFO">
        <tr style="height:50px">
          <td style="width:80%">
            <div>
              <xsl:attribute name="onclick">
                openZgWindow('<xsl:value-of select="NAME"/>')
              </xsl:attribute>
              <xsl:value-of select="NAME"/>
            </div>
          </td>
        </tr>
        </xsl:for-each>
      </table>


    </xsl:template>

</xsl:stylesheet>

这篇关于Ajax直接返回xml流,并应用于xslt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283132

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N