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

在服务器端将XML转换成HTML(C#)

2009-04-03 11:38 330 查看
XML 清单(CD.xml):

<?xml version="1.0" encoding="utf-8" ?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Quxu</title>
<artist>Genshui Yang</artist>
<country>CHINA</country>
<company>Chengshi</company>
<price>12.90</price>
<year>1987</year>
</cd>
</catalog>


XSL 清单(CD.xslt):

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="artist"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


服务器端后台代码(C#, Default.aspx.cs):

using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;
using System.Xml.Xsl;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
return;
XslCompiledTransform xslCT = new XslCompiledTransform();
xslCT.Load(Server.MapPath("CD.xslt"));
XmlDocument xmlDoc = new XmlDocument();

StringBuilder strB=new StringBuilder();
XmlWriter xw = XmlWriter.Create(strB);
xslCT.Transform(Server.MapPath("CD.xml"), xw);
Response.Write(strB.ToString());

}
}


Default.aspx 无需加任何代码.

运行Default.aspx页面, 显示结果如下:

TitleArtist
Empire BurlesqueBobDylan
Quxu Genshui Yang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: