65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.76/5 (8投票s)

2006 年 9 月 8 日

2分钟阅读

viewsIcon

55049

downloadIcon

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-

8904tb@uk.comGeorge Bush5678123-423-2343gb@usa.com


7. 记录以平面样式一个接一个地显示。 显然,用户不会希望以像上面那样的线性格式查看记录。 我们需要以表格形式向用户显示记录,分隔记录。

8. 现在让我们为Transformsource设置值。 选择我们创建的Employee.xslt。

9. 编译、构建并执行该项目,您将看到ABC公司所有员工的逐条记录的表格视图。

 

Sample screenshot

 

10. XSLT已经将employee.xml中存在的Employee数据转换成更具可读性和意义的格式。

非常感谢。

此致,
Namratha (Nasha)

© . All rights reserved.