当前位置: 首页 > news >正文

xslt 转换方法

一、客户端转换

    function XsltTransform(xslfile)
  
       {        
  
           if(typeof(window.ActiveXObject) != 'undefined')
  
           {
  
               //ie
 
              try
 
              {
 
                  var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.3.0");
 
                  var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
 
                  xmlDoc.async=false;
 
                  xslDoc.async = false;
 
                 xmlDoc.loadXML(document.getElementById("xmlContent").value.replace(/\r\n/gi,""));
 
                 xslDoc.load(xslfile);
 
                
 
                 var oTemplate = new ActiveXObject("Msxml2.XSLTemplate");
 
                 oTemplate.stylesheet = xslDoc;
 
                 var oProcessor = oTemplate.createProcessor();
 
                  oProcessor.input = xmlDoc.documentElement;
 
                                 
 
                  oProcessor.addParameter("parameter",'<%=count%>');
 
                  oProcessor.transform();
 
                 
 
                  document.getElementById('div').innerHTML=oProcessor.output;
 
                 
 
              }catch(e){
 
                
 
              }
 
          }   
 
          else if(document.implementation && document.implementation.createDocument)
 
          { 
 
              //ff
 
              try
 
              {
 
                  var parser=new DOMParser();
 
                  var xmlDoc;
 
                  if(document.getElementById("xmlContent").value == "")                
 
                     xmlDoc = parser.parseFromString(text,"text/xml");
 
                  else
 
                      xmlDoc = parser.parseFromString(document.getElementById("xmlContent").value.replace(/\r\n/gi,""),"text/xml");
 
                 
 
                  xmlDoc.async = false;
 
                  
 
                  var xslDoc = document.implementation.createDocument("", "", null);
 
                  xslDoc.async = false; 
 
                  xslDoc.load(xslfile);    
 
 
 
                // 定义XSLTProcessor对象
 
                  var xsltProcessor = new XSLTProcessor();
 
                  xsltProcessor.importStylesheet(xslDoc);
 
                  xsltProcessor.setParameter(null, "parameter", '<%=count %>');
 
                 // transformToDocument方式
 
                 var result = xsltProcessor.transformToDocument(xmlDoc);
 
                 document.getElementById('div').innerHTML = result.documentElement.textContent;
 
             }catch(e){   
 
             }
 
         }
 
     }
 

二、服务器端方法:

 XslTransform xslt = new XslTransform();     
xslt.Load(
"print_root.xsl");
XmlDocument doc 
= new XmlDocument();
doc.Load(
"library.xml");
// Create a new document containing just the result tree fragment.
XmlNode testNode = doc.DocumentElement.FirstChild; 
XmlDocument tmpDoc 
= new XmlDocument(); 
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the result tree fragment 
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, 
null, Console.Out, null);

转载于:https://www.cnblogs.com/davyjiang/articles/1247369.html

相关文章:

  • VC++/MFC学习笔记(五)
  • 自动提示的文本框
  • [转]屏蔽网页右键
  • linux 上远程控制
  • 快捷键控件
  • pthread_cond_wait(条件变量)
  • 装了vs2008后再装sql server 2005碰到的问题
  • ArcGIS.Server.9.2.DotNet自带例子分析(七、一)
  • 简述GPS导航设备的定位原理
  • ASP.Net2.0 GridView 多列排序,显示排序图标,分页(转)
  • C#正则表达式类Match和Group类的理解
  • 声音音质评价专业述语
  • 使用Document_Handler_Example修改的注意事项
  • iptables 范例
  • 将asp.net站点转化为sharepoint站点
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • js如何打印object对象
  • Mithril.js 入门介绍
  • React的组件模式
  • Sequelize 中文文档 v4 - Getting started - 入门
  • spring boot下thymeleaf全局静态变量配置
  • springMvc学习笔记(2)
  • 多线程 start 和 run 方法到底有什么区别?
  • 分类模型——Logistics Regression
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 离散点最小(凸)包围边界查找
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 算法系列——算法入门之递归分而治之思想的实现
  • 找一份好的前端工作,起点很重要
  • ​Java基础复习笔记 第16章:网络编程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (ZT)一个美国文科博士的YardLife
  • (阿里云万网)-域名注册购买实名流程
  • (补)B+树一些思想
  • (二)hibernate配置管理
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (三)docker:Dockerfile构建容器运行jar包
  • (转)c++ std::pair 与 std::make
  • .jks文件(JAVA KeyStore)
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 受管制代码
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET的数据绑定
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @ModelAttribute注解使用
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [Android 13]Input系列--获取触摸窗口