xsl 可方便的将一种格式的xml,转换成另一种格式的xml,参考下面的代码:

  1. using System;
  2. using System.IO;
  3. using System.Text;
  4. using System.Xml;
  5. using System.Xml.Xsl;
  6.  
  7. namespace XslLoad
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. string xml = @"<?xml version='1.0' encoding='ISO-8859-1'?>
  14. <catalog>
  15. <cd>
  16. <title>Empire Burlesque</title>
  17. <artist>Bob Dylan</artist>
  18. <country>USA</country>
  19. <company>Columbia</company>
  20. <price>10.90</price>
  21. <year>1985</year>
  22. </cd>
  23. </catalog>";
  24.  
  25. string xsl = @"<?xml version='1.0' encoding='ISO-8859-1'?>
  26. <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
  27. <xsl:template match='/'>
  28. <html>
  29. <body>
  30. <h2>My CD Collection</h2>
  31. <table border='1'>
  32. <tr bgcolor='#9acd32'>
  33. <th align='left'>Title</th>
  34. <th align='left'>Artist</th>
  35. </tr>
  36. <xsl:for-each select='catalog/cd'>
  37. <tr>
  38. <td><xsl:value-of select='title'/></td>
  39. <td><xsl:value-of select='artist'/></td>
  40. </tr>
  41. </xsl:for-each>
  42. </table>
  43. </body>
  44. </html>
  45. </xsl:template>
  46. </xsl:stylesheet>";
  47.  
  48. string result = XslTransform(xml, xsl);
  49. Console.WriteLine(result);
  50. Console.Read();
  51.  
  52. }
  53.  
  54. /// <summary>
  55. /// 将Xml利用Xsl转换成目标xml
  56. /// </summary>
  57. /// <param name="inputXmlConent">输入的xml</param>
  58. /// <param name="inuptXslContent">xsl</param>
  59. /// <returns>转换后的目标xml</returns>
  60. static String XslTransform(string inputXmlConent, string inuptXslContent)
  61. {
  62. XmlReader readerXml = XmlReader.Create(new MemoryStream(UTF8Encoding.UTF8.GetBytes(inputXmlConent)));
  63. XmlReader readerXsl = XmlReader.Create(new MemoryStream(UTF8Encoding.UTF8.GetBytes(inuptXslContent)));
  64. XslCompiledTransform transform = new XslCompiledTransform();
  65. transform.Load(readerXsl);
  66.  
  67. StringBuilder sb = new StringBuilder();
  68. XmlWriterSettings Settings = new XmlWriterSettings()
  69. {
  70. Indent = true,
  71. ConformanceLevel = ConformanceLevel.Auto
  72. };
  73. XmlWriter writer = XmlWriter.Create(sb, Settings);
  74.  
  75. transform.Transform(readerXml, writer);
  76.  
  77. return sb.ToString();
  78. }
  79. }
  80. }

输出结果:

  1. <html>
  2. <body>
  3. <h2>My CD Collection</h2>
  4. <table border="1">
  5. <tr bgcolor="#9acd32">
  6. <th align="left">Title</th>
  7. <th align="left">Artist</th>
  8. </tr>
  9. <tr>
  10. <td>Empire Burlesque</td>
  11. <td>Bob Dylan</td>
  12. </tr>
  13. </table>
  14. </body>
  15. </html>

C#执行XSL转换的更多相关文章

  1. JavaEE XML XSL转换(XSLT)

    XSL转换(XSLT) @author ixenos 定义: XSL转换机制可以指定将XML文档转换为其他格式的规则,例如,txt纯文本.XHTML或其他任何XML格式. 用途: XSLT通常用来将某 ...

  2. linux上Kettle定时执行(转换的单步执行,job的单步执行,环境变量,kettle定时功能,效率问题等)转自(http://blog.csdn.net/feng19821209/article/details/5800960)

    1,Kettle跨平台使用.    例如:在AIX下(AIX是IBM商用UNIX操作系统,此处在LINUX/UNIX同样适用),运行Kettle的相关步骤如下:    1)进入到Kettle部署的路径 ...

  3. kettle在linux下面用于shell脚本执行:转换或者作业

    1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...

  4. 【jdbc访问数据库获取执行sql转换json】

    Talk is cheap.Show me your code. import java.sql.*; import java.util.HashMap; import java.util.Map; ...

  5. 使用TryParse()来执行数值转换

    static void Main() { var ageText = "25"; if (int.TryParse(ageText,out int age)) { Console. ...

  6. Kettle_使用Pan.bat执行转换、Kitchen.bat执行作业

    参考资料:http://www.cnblogs.com/wxjnew/p/3620792.html 注意:使用bat文件执行速度比执行在spoon.bat中执行慢很多 一.使用Pan.bat执行转换 ...

  7. Kettle 中转换(transformation)的执行过程

    1,Spoon.java的main方法是整个Kettle运行的入口.当打开Kettle的设计器界面后,可以在其中设计作业和转换.这里讨论转换的执行过程. 2,设计好一个转换后,转换保存的本地文件是 . ...

  8. XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类

    XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...

  9. kettle用mysql创建资源库执行sql代码报错

    一.原因:  sql语句里边使用 'Y' 'N'  给boolean类型的赋值产生sql失败    二.解决方法:将insert语句中‘Y’或‘N’ 改成TRUE或FALSE即可,共两张表3个地方  ...

随机推荐

  1. 启用Mac(OS X Yosemite)自带的apache

    刚用Mac的时候配置过一次Mac自带的apache,主要是平常自己用mackdown写文档,装成html文件放到apache下方便自己和同事阅读.后来升级各种东西,估计是升级OS X导致apache不 ...

  2. 让我们喝喝下午茶,聊聊AJAX和JSON

    1.AJAX     [1] AJAX简介         > 全称:Asynchronous JavaScript And XML         > 直译:异步的JavaScript和 ...

  3. MongoDB-集群搭建

    前言 搭建一个MongoDB的集群,这个环境只是内网的一个测试环境,分片没有使用副本集,配置并分配好端口后,开启集群的身份验证功能,在开启集群权限时,有些注意事项,在搭建过程中会着重标出. 一.集群规 ...

  4. org.apache.jasper.JasperException: Unable to compile class for JSP

    项目启动时报错 : The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory S ...

  5. Seq_file文件系统实例剖析

    http://blog.chinaunix.net/uid-24432676-id-2607766.html 另 http://www.cnblogs.com/qq78292959/archive/2 ...

  6. Java 工程转 C#

    一.  前言 由于要用c#写点东西,但是我不会c#啊,所以就只能先用Java写好,然后再看看 Java 和C# 的差别,再一点一点转嘛,谁知道,google一下,有软件可以直接把 Java 工程转为C ...

  7. .net 操作sftp服务器

    因为项目的需要,整理了一段C#操作sftp的方法. 依赖的第三方类库名称为:SharpSSH 1.1.1.13. 代码如下: 1: using System; 2: using System.Coll ...

  8. 【Python数据分析】从Web收集数据小实例

    最近在看<鲜活的数据:数据可视化指南>,学习一些数据可视化与数据分析的技术,本例是该书第一章的一个例子衍伸而来. 实例内容:从www.wunderground.com收集美国纽约州布法罗市 ...

  9. 使用while循环语句和变量输出九九乘法表

    输出的结果如下:

  10. XBOX ONE游戏开发之登陆服务器(一)

    XBOX ONE游戏开发之登陆服务器(一) XBOX LIVE是微软自已的认证服务器, 当我们开发游戏时,如果是联网游戏,需要自已架设单点登陆(SSO)服务器 这个需要微软提供Relying Part ...