最近在忙着给公司xslt转档,刚开始学,碰到了很多问题。也翻阅过很多资料,但是很少有实例的书籍(如果哪位朋友能介绍几本有实例的书籍,推荐几本吧,不胜感激)

下面是我碰到的一些问题,帖出来,只求大家能更好的学习。希望对大伙有帮助。

5-3.xslt 文件

1 <?xml version="1.0"?>
2  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:msxsl="urn:schemas-microsoft-com:xslt"
4 xmlns:myDiscount="urn:myDiscount">
5
6 <msxsl:script language="C#" implements-prefix="myDiscount">
7 <![CDATA[
8 public string ReturnDate(string CheckIn,int CXLDay)
9 {
10 DateTime t = Convert.ToDateTime(CheckIn);
11 DateTime xx =t.AddDays(-(CXLDay+1)); //CheckIn日减去CXLDay天数
12 return xx.ToShortDateString();
13 }
14
15 int tiDBL =0;
16 public void tiDBLsresum()
17 {
18 tiDBL =0;
19 }
20 public void tiDBLsum(int n)
21 {
22 tiDBL+=n;
23 }
24 public int tiDBLsum_rt()
25 {
26 return tiDBL;
27 }
28
29 int tiDBL2 =0;
30 public void tiDBLsresum2()
31 {
32 tiDBL2 =0;
33 }
34 public void tiDBLsum2(int n)
35 {
36 tiDBL2+=n;
37 }
38 public int tiDBLsum2_rt()
39 {
40 return tiDBL2;
41 }
42
43
44 ]]>
45 </msxsl:script>
46
47 <xsl:output method="html" indent="yes"/>
48 <xsl:template match="/">
49 <table>
50 <tr>
51 <!--第一个和最后一个的值-->
52 <td>
53 <xsl:for-each select="Response/SearchAvailResponse/Hotel/CXLPolicys/CXLPolicy">
54 <xsl:sort select ="CXLDay" order ="descending"/>
55
56 <!--第二个值-->
57 <!--<xsl:value-of select ="myDiscount:tiDBLsum(1)"/>
58 <xsl:if test ="myDiscount:tiDBLsum_rt()=2">
59 <xsl:value-of select="myDiscount:ReturnDate(http://www.cnblogs.com/CheckIn,CXLDay)" />
60 </xsl:if>-->
61
62 <!--第一个值-->
63 <!--<xsl:if test ="myDiscount:tiDBLsum_rt()=0">
64 <xsl:value-of select="myDiscount:ReturnDate(http://www.cnblogs.com/CheckIn,CXLDay)" />
65 <xsl:value-of select ="myDiscount:tiDBLsum(1)"/>
66 </xsl:if>-->
67
68 <xsl:value-of select ="myDiscount:tiDBLsum(1)"/>
69 </xsl:for-each>
70 <xsl:for-each select="Response/SearchAvailResponse/Hotel/CXLPolicys/CXLPolicy">
71 <xsl:sort select ="CXLDay" order ="descending"/>
72
73 <xsl:if test ="myDiscount:tiDBLsum2_rt()=0">
74
75 <xsl:value-of select="CXLDay" />---
76 <xsl:value-of select="myDiscount:ReturnDate(http://www.cnblogs.com/CheckIn,CXLDay)" />
77 </xsl:if>
78 <br></br>
79 <xsl:value-of select ="myDiscount:tiDBLsum2(1)"/>
80 <xsl:if test ="myDiscount:tiDBLsum2_rt()=myDiscount:tiDBLsum_rt()">
81 <xsl:value-of select="CXLDay" />---
82 <xsl:value-of select="myDiscount:ReturnDate(http://www.cnblogs.com/CheckIn,CXLDay)" />
83 </xsl:if>
84 </xsl:for-each>
87 </td>
88 </tr>
      </table>
91 </xsl:template>
92 </xsl:stylesheet>

xml 文件

1 <CXLPolicys>
2 <CXLPolicy>
3 <CXLDay>3</CXLDay>
4 <CXLRemark>3 Night</CXLRemark>
5 </CXLPolicy>
6 <CXLPolicy>
7 <CXLDay>4</CXLDay>
8 <CXLRemark>2 Night</CXLRemark>
9 </CXLPolicy>
10 <CXLPolicy>
11 <CXLDay>5</CXLDay>
12 <CXLRemark>1 Night</CXLRemark>
13 </CXLPolicy>
14 <CXLPolicy>
15 <CXLDay>1</CXLDay>
16 <CXLRemark>Full Charge</CXLRemark>
17 </CXLPolicy>
18 </CXLPolicys>

aspx 文件

(运行这个aspx文件就可以看到上面转档后的结果)

1 using System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Web;
6 using System.Web.Security;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11 using System.IO;
12 using System.Xml;
13 using System.Xml.Xsl;
14 using System.Xml.XPath;
15
16 public partial class _5_3 : System.Web.UI.Page
17 {
18 protected void Page_Load(object sender, EventArgs e)
19 {
20
21 string xmlPath = HttpContext.Current.Server.MapPath("./Search a Hotel Response.xml");
22 string xslPath = HttpContext.Current.Server.MapPath("./5-3.xsl");
23
24 XPathDocument xpathDoc = new XPathDocument(xmlPath);
25 XslCompiledTransform transform = new XslCompiledTransform();
26
27 //Load the XSL stylsheet into the XslCompiledTransform object
28 XsltSettings axslset = new XsltSettings();
29 axslset.EnableScript = true;
30 transform.Load(xslPath, axslset, new XmlUrlResolver());
31
32 XsltArgumentList argsList = new XsltArgumentList();
33
34 System.Text.StringBuilder t = new System.Text.StringBuilder();
35
36 transform.Transform(xpathDoc, argsList, new System.IO.StringWriter(t));
37 string resultString = t.ToString();
38
39 Response.Write(resultString);
40
41 }
42 }

转载于:https://www.cnblogs.com/lookyou/articles/2037232.html

用xslt 把xml转换成html的几个实例(1)相关推荐

  1. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...

    问题:我用dom将数据写到xml中 设置xml文件的编码格式是gbk时再dos下运行jar包中文会出现乱码 如下: 代码如下: StringWriter strWtr = new StringWrit ...

  2. xml怎么转换html文件,xml转换成html文件方法

    xml转换成html文件方法 /// < summary> ///将xml转化为html /// < /summary> /// < param name="x ...

  3. php 将xml转换为数组,php怎么将xml转换成数组

    php怎么将xml转换成数组2021-03-10 14:54:59 php将xml转换成数组的方法:首先将xml数据转成object(对象)格式的数据:然后使用json_encode()函数将obje ...

  4. 时间转秒函数c语言,c语言函数mktime()如何将时间转换成经过的秒数实例源码

    c语言函数mktime()如何将时间转换成经过的秒数实例源码. 需要引入的头文件:#include 定义函数:time_t mktime(strcut tm * timeptr); 函数mktime( ...

  5. Xml转换成html表格代码,如何用C++代码将XML文件转换为HTML表格?

    我有一个XML文件.我想把它转换成HTML文件,并用我的C++应用程序像HTML表一样表示它.有没有任何C++库可以用来解析XML文件并创建HTML文件? 示例: Belgian Waffles $5 ...

  6. 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库

    数据对接xml解析 <ESBEntry><!--通过MB对请求进行权限验证,验证后将删除AccessControl节点 --><AccessControl>< ...

  7. android 读取短信 彩信,Android 短信转换成彩信的消息数量(实例代码)

    默认3条以上转为彩信 改为5条 路径vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java p ...

  8. php 10进制位数保持,php 任意进制的数转换成10进制功能实例

    /** * 任意进制的数转换成十进制 * @param * @arrange (512.笔记) jb51.cc * 显示转换数字所涉及的步骤 * 从任何基数(如八进制或十六进制)到基数10 * 请参阅 ...

  9. android xml转换成svg,如何将Android xml布局转换为png / svg以在iOS版本中使用

    我这里有一个 Android布局xml文件: android:id="@+id/locationMarker" android:layout_width="wrap_co ...

  10. Xml转换成view的原理

    在开发过程中,我们通常都有在用View.inflate(context, resource, root)方法来创建视图,这个方法非常方便,但是它有个缺点就是没有加载xml 里面设置的布局参数.举个例子 ...

最新文章

  1. 面试了一个32岁的大佬,明显感觉到他背过很多面试题…
  2. RDKit | 基于RDKit的PandasTools加速数据分析
  3. 解决Selenium与firefox浏览器版本不兼容问题
  4. vue自定义指令(详细)
  5. java 异步上传一张图片,java异步上传图片示例
  6. 一个小偷写给失主的信
  7. 计算机毕业设计ssm图书管理系统
  8. adams 小车 平台 前行仿真
  9. codesmith for java_codesmith 入门介绍【转载】
  10. 11个LOGO设计灵感网站推荐,帮你提高LOGO设计工作效率
  11. 机器学习——葡萄酒分类问题(输入与输出维度相同)
  12. Django创建超级管理员用户步骤
  13. 【安全资讯】2021年值得关注的10大网络安全工具
  14. 关于Windows api 多屏幕显示器识别ID问题。未解决
  15. 从818悟空榜看苏宁全场景零售的数据赋能
  16. url 里面 等号_【Python成长之路】从零学爬虫给微信公众号阅读量作个弊:刷阅读量...
  17. 【mmdetection】mmdetection安装详细步骤
  18. 测试pok_如何将PokémonGo App用于Apple Watch
  19. 徐小明:探寻股市下跌的真正原因
  20. 遥感图像的空间分辨率、光谱分辨率、时间分辨率的含义

热门文章

  1. 谭浩强 C程序设计 8.2 求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。...
  2. IMapGrid/IIndexGrid/IMesureGrid使用方法及MapGridBorder的使用
  3. js得到自定义属性和操作table表格
  4. DSP_Builder设计方法说明_SinWave
  5. ylbtech-Unitity-CS:AnonymousDelegates
  6. Android学习笔记之Bitmap位图的缩放
  7. java for语句
  8. 1.凤凰架构:构建可靠的大型分布式系统 --- 服务架构演进史
  9. 15.企业应用架构模式 --- 分布模式
  10. 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制