如何在Web窗体上显示XML文档

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的转换一样呢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值