xml是一个可扩展标记语言,用户可以自由定义标记。
xml文件是一个文本文件,可用来存储用户数据。已经被广泛的应用的开发中。如csdn.net的论坛帖子
内容的显示(用xml+xslt)。
.net中可以使用xml控件执行xsl转换
<asp:Xml id="Xml1" runat="server"></asp:Xml>
首先我们先要实例化2个类,这2个类具体如何使用,大家可以在sdk中找到。
System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
System.Xml.Xsl.XslTransform xmltrans = new System.Xml.Xsl.XslTransform();
转化一个xml到xsl 需要定位转换的xml文件。
xmldoc.Load(Server.MapPath("user.xml"));
本测试例子是user.xml
<?xml version="1.0" encoding="gb2312" ?>
<Users>
<Issue>
<TopicName>客户联系方式:</TopicName>
</Issue>
<user>
<user_id>1</user_id>
<user_name>Li</user_name>
<password>235689</password>
<true_name>李项</true_name>
<phone>010-65432121</phone>
<address>知春里19号</address>
<city>北京</city>
<state>中国</state>
</user>
<user>
<user_id>2</user_id>
<user_name>Guo</user_name>
<password>235689</password>
<true_name>郭嘉</true_name>
<phone>020-58633192</phone>
<address>天河路15号</address>
<city>广州</city>
<state>中国</state>
</user>
<user>
<user_id>3</user_id>
<user_name>Huang</user_name>
<password>123234</password>
<true_name>黄小根</true_name>
<phone>021-65543101</phone>
<address>淮海北路10号</address>
<city>上海</city>
<state>中国</state>
</user>
</Users>
指定xsl文件
xmltrans.Load(Server.MapPath("user.xsl"));
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<HTML>
<Title>
<xsl:value-of select="Users/Issue/TopicName"/>
</Title>
<BODY>
<table width="778" border="0" cellspacing="0" cellpadding="0" height="22" align="center">
<tr>
<td width="178" valign="top"><xsl:value-of select="Users/Issue/TopicName"/></td>
<td width="600">
<FONT face="Verdana" size="3">
<TABLE cellspacing="1" cellpadding="1" border="0" height="22" align="center" bgcolor="#6699FF" width="500">
<TR bgcolor="#E3E3E3">
<TD class="header"><center><B>用户名</B></center></TD>
<TD class="header"><center><B>姓名</B></center></TD>
<TD class="header"><center><B>电话</B></center></TD>
<TD class="header"><center><B>地址</B></center></TD>
</TR>
<xsl:for-each select="Users/user">
<TR bgcolor="#FFFFFF">
<TD>
<xsl:value-of select="user_name"/>
</TD>
<TD>
<xsl:value-of select="true_name"/>
</TD>
<TD>
<xsl:value-of select="phone"/>
</TD>
<TD>
<xsl:value-of select="address"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</FONT></td>
</tr>
</table>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
绑定xmldocument和xmltrans
Xml1.Document = xmldoc;
Xml1.Transform = xmltrans;
完整的代码
private void Page_Load(object sender, System.EventArgs e)
{
System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
xmldoc.Load(Server.MapPath("user.xml"));
System.Xml.Xsl.XslTransform xmltrans = new System.Xml.Xsl.XslTransform();
xmltrans.Load(Server.MapPath("user.xsl"));
Xml1.Document = xmldoc;
Xml1.Transform = xmltrans;
}
如果我们不使用 System.Xml.Xsl.XslTransform 执行转换,如何直接运行xml文件呢
其实很简单把需要执行转化的xsl直接指定在xml文件中。
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type='text/xsl' href='user.xsl'?>
<Users>
<Issue>
<TopicName>客户联系方式:</TopicName>
</Issue>
<user>
<user_id>1</user_id>
<user_name>Li</user_name>
<password>235689</password>
<true_name>李项</true_name>
<phone>010-65432121</phone>
<address>知春里19号</address>
<city>北京</city>
<state>中国</state>
</user>
<user>
<user_id>2</user_id>
<user_name>Guo</user_name>
<password>235689</password>
<true_name>郭嘉</true_name>
<phone>020-58633192</phone>
<address>天河路15号</address>
<city>广州</city>
<state>中国</state>
</user>
<user>
<user_id>3</user_id>
<user_name>Huang</user_name>
<password>123234</password>
<true_name>黄小根</true_name>
<phone>021-65543101</phone>
<address>淮海北路10号</address>
<city>上海</city>
<state>中国</state>
</user>
</Users>
直接用ie打开你的user.xml文件看看 是不是和在.net用xml控件执行xsl的转换一样呢。