XSLT转换XML

最近项目中有一个需求要帮XSLT转换XML的功能,在网上Search,发现此网页上讲述此功能的方法比较好,多种多样。所以转载,以备共享,自查.

源地址:http://msdncsharp.icode.csdn.net/tag/xslcompiledtransform

1.下面的示例执行 XSLT 转换,并输出到 FileStream。

XslCompiledTransform.Transform 方法 (IXPathNavigable, XsltArgumentList, Stream)的C#例子

2.下面的示例演示如何使用 OutputSettings 属性来创建 XmlWriter 对象,该对象将文本写入控制台。

XslCompiledTransform.OutputSettings 属性的C#例子

3.下面的示例执行 XSLT 转换,并输出字符串。

XslCompiledTransform.Transform 方法 (String, XsltArgumentList, TextWriter)的C#例子

4.下面的示例演示如何以编程方式删除临时文件。

XslCompiledTransform.TemporaryFiles 属性的C#例子

5.下面的示例加载存储在网络资源上的一个样式表。XmlSecureResolver 对象指定访问该样式表所需的凭据。

XslCompiledTransform.Load 方法 (String, XsltSettings, XmlResolver)的C#例子

6.下面的示例演示如何启用 XSLT 调试。

XslCompiledTransform 构造函数 (Boolean)的C#例子

7.下面的示例使用 XmlSecureResolver 来解析 XSLT

XslCompiledTransform.Transform 方法 (XmlReader, XsltArgumentList, XmlWriter, XmlResolver)的C#例子

8.下面的示例执行 XSLT 转换,并输出到 XmlWriter 对象。

XslCompiledTransform.Transform 方法 (String, XmlWriter)的C#例子

9.下面的示例执行转换并输出到文件。

XslCompiledTransform.Transform 方法 (String, String)的C#例子

10.下面的示例执行 XSLT 转换,并输出到 XmlWriter 对象。

XslCompiledTransform.Transform 方法 (IXPathNavigable, XmlWriter)的C#例子

11.下面的示例加载 XmlReader 对象中包含的一个样式表。

XslCompiledTransform.Load 方法 (XmlReader)的C#例子

12.下面的示例使用 XsltArgumentList 对象创建表示当前日期和时间的参数。

XslCompiledTransform.Transform 方法 (String, XsltArgumentList, XmlWriter)的C#例子

13.下面的示例执行转换并输出到文件。

XslCompiledTransform.Load 方法 (String)的C#例子

14.下面的示例加载 XPathDocument 对象中包含的一个样式表。

XslCompiledTransform.Load 方法 (IXPathNavigable)的C#例子

15.下面的示例转换 books.xml 文件中的第一本书。

XslCompiledTransform.Transform 方法 (XmlReader, XmlWriter)的C#例子

16.下面的示例执行转换并输出到文件。

XslCompiledTransform 类的C#例子

17.下面的示例加载一个样式表。XmlSecureResolver 对象包含的凭据是访问样式表中的任何 

XslCompiledTransform.Load 方法 (IXPathNavigable, XsltSettings, XmlResolver)的C#例子

18.下面的示例加载一个样式表,并启用对 XSLT 脚本的支持。

XslCompiledTransform.Load 方法 (XmlReader, XsltSettings, XmlResolver)的C#例子

最后附上:XSLT模板,XML数据源两个文件
XSLT

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  
<xsl:output method="xml" />

    
<xsl:template match="/">
      
<EmailModel>
        
<xsl:apply-templates select="EmailModel" />
      
</EmailModel>
    
</xsl:template>

    
<xsl:template match="/EmailModel" >
      
<xsl:apply-templates select="Email" />
    
</xsl:template>

    
<xsl:template match="Email" >
      
<Subject>
        
<xsl:value-of select="subject"/>
      
</Subject>
      
<Sender>
        
<xsl:value-of select="senderName"/>
      
</Sender>
      
<Recipient>
        
<xsl:value-of select="recipientName"/>
      
</Recipient>
      
<Cc>
        
<xsl:value-of select="ccName"/>
      
</Cc>
      
<Bcc>
        
<xsl:value-of select="bccName"/>
      
</Bcc>
      
<BodyContent>
        
<xsl:value-of select="bodyContent"/>
      
</BodyContent>
      
<Attach>
        
<xsl:value-of select="attach"/>
      
</Attach>
    
</xsl:template>

</xsl:stylesheet>
XML
<EmailModel>
  
<Email>
    
<subject>Subject</subject>
    
<senderName>SenderName</senderName>
    
<recipientName>RecipientName</recipientName>
    
<ccName>CcName</ccName>
    
<bccName>BccName</bccName>
    
<bodyContent>BodyContent</bodyContent>
    
<attach>Attach</attach>
    
</Email>
</EmailModel>
原文地址:https://www.cnblogs.com/RuiLei/p/1015220.html