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.下面的示例执行转换并输出到文件。
17.下面的示例加载一个样式表。XmlSecureResolver 对象包含的凭据是访问样式表中的任何
XslCompiledTransform.Load 方法 (IXPathNavigable, XsltSettings, XmlResolver)的C#例子
18.下面的示例加载一个样式表,并启用对 XSLT 脚本的支持。
XslCompiledTransform.Load 方法 (XmlReader, XsltSettings, XmlResolver)的C#例子
最后附上:XSLT模板,XML数据源两个文件
XSLT
<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>
<Email>
<subject>Subject</subject>
<senderName>SenderName</senderName>
<recipientName>RecipientName</recipientName>
<ccName>CcName</ccName>
<bccName>BccName</bccName>
<bodyContent>BodyContent</bodyContent>
<attach>Attach</attach>
</Email>
</EmailModel>