ASP.NET 2.0 -- 标准控件 -- XML控件






3.76/5 (8投票s)
2006 年 9 月 8 日
2分钟阅读

55049

541
ASP.NET 2.0 -- 标准控件 -- XML控件
引言
今天我们将讨论在ASP.NET 2.0标准控件库中添加的XML控件。
在过去的几年中,将数据存储在XML中变得非常流行。 存储在XML中的数据可以使用.NET框架提供的许多内置对象读取,例如XMLReader、XPath查询和旧式的XMLDOM对象。 在ASP.NET中,MS更进一步,提供了一个XML控件,该控件使用xslt轻松读取和转换数据为所需格式。
以前,您需要创建一个XML DOM对象,将xml文件加载到DOM中,遍历各个节点,然后编写一个函数,该函数将数据格式化为所需的格式并在页面上显示它。 同样的,也可以使用XMLReader和XPath查询来完成。
XML控件使用xslt的强大功能。 我个人非常喜欢XSLT。 原因 - XSLT是一种用于转换XML的脚本语言。 它有条件,循环等,允许您解析xml并重新格式化,甚至使用相同的数据重新创建完全不同的xml。
XML控件示例应用程序
现在让我们创建一个示例并检查xslt在XML转换上的强大功能。
1. 打开一个新Web项目,添加一个新表单,然后将XML控件拖放到表单上。
2. 在项目中添加一个名为Employee.xml的xml文件,并将以下内容添加到xml文件中
<?xml version="1.0" encoding="utf-8" ?>
<employees>
<employee>
<name>Namrata Shah</name>
<id>3456</id>
<tele>123-123-2343</tele>
<email>ns@mphasis.com</email>
</employee>
<employee>
<name>Tony Blair</name>
<id>4567</id>
<tele>234-644-8904</tele>
<email>tb@uk.com</email>
</employee>
<employee>
<name>George Bush</name>
<id>5678</id>
<tele>123-423-2343</tele>
<email>gb@usa.com</email>
</employee>
</employees>
3. 向项目添加一个Employee.xslt文件,并添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>ABC Employee Register</title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="employees">
<h4>ABC Group of Companies</h4><hr color="white"/>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="id">
<b>Emp ID :</b> <xsl:apply-templates />
<br/>
</xsl:template>
<xsl:template match="name">
<b>Name:</b> <xsl:apply-templates /><br/>
</xsl:template>
<xsl:template match="tele">
<b>Phone:</b> <xsl:apply-templates /><br/>
</xsl:template>
<xsl:template match="email">
<b>Email:</b> <xsl:apply-templates /><br/> <br/>
<br/>
</xsl:template>
</xsl:stylesheet>
4. xml文件包含ABC集团公司员工的数据,我们需要创建一个屏幕,该屏幕在网页上显示此信息。
5. 让我们将XML对象的DocumentSource的值设置为Employee.xml。 设置文档源后,执行项目并观察屏幕上的结果。
6. 您应该看到XML文件中存在的所有记录的列表,如下所示
Namrata Shah3456123-123-2343ns@mphasis.comTony Blair4567234-644-
7. 记录以平面样式一个接一个地显示。 显然,用户不会希望以像上面那样的线性格式查看记录。 我们需要以表格形式向用户显示记录,分隔记录。
8. 现在让我们为Transformsource设置值。 选择我们创建的Employee.xslt。
9. 编译、构建并执行该项目,您将看到ABC公司所有员工的逐条记录的表格视图。
10. XSLT已经将employee.xml中存在的Employee数据转换成更具可读性和意义的格式。
非常感谢。
此致,
Namratha (Nasha)