您的位置:首页 > Web前端 > HTML

C#中使用XSLT文件将XML文档转换为HTML

2011-05-12 16:58 871 查看
1.创建XSLT文件,定义格式;
2.在C#中使用XslCompiledTransform对象的load()方法加载XSLT文件;
3.使用Transform()方法转换XML文档。

实例:将books.xml按照books.xsl定义的格式转换成out.html
TestXsl.cs:

using System;
using System.Xml.Xsl;

namespace Magci.Test.XML.TestXsl
{
class Program
{
static void Main(string[] args)
{
XslCompiledTransform trans = new XslCompiledTransform();
trans.Load(@"..\..\books.xsl");
trans.Transform(@"..\..\books.xml", "out.html");
}
}
}


books.xml:

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book genre="autobiography" publicationdate="1991" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>


books.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<head>
<title>Price List</title>
</head>
<body>
<table>
<xsl:apply-templates/>
</table>
</body>
</HTML>
</xsl:template>

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

<xsl:template match="book">
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="price"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>


out.html:

<HTML>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Price List</title>
</head>
<body>
<table>
<tr>
<td>The Autobiography of Benjamin Franklin</td>
<td>8.99</td>
</tr>
<tr>
<td>The Confidence Man</td>
<td>11.99</td>
</tr>
<tr>
<td>The Gorgias</td>
<td>9.99</td>
</tr>
</table>
</body>
</HTML>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: