首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室Dotnet频道
中国IT教育
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 文章正文

ASP.NET 2.0中XML数据的处理

文章来源中国IT实验室收集整理 作者西门潇洒 更新时间2008-4-16 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

SqlDataSource和ObjectDataSource控件都是平面表格式的数据源控件,操作也相对简单,在这里我就不细说了.
    在这里我主要谈下用于连接XML文件的XmlDataSource和用于连接站点导航数据的SiteMapDataSource这两个层次数据源控件中XmlDataSource数据绑定到平面表格控件的一起东东.

    XmlDataSource控件允许其它控件绑定到XML数据。XmlDataSource支持DataFile属性,它被用于指定作为输入(input)的XML数据文件的路径。你还可以指定TranformFile属性,给数据应用XSLT转换;设置XPath属性来指定需要暴露的数据源节点的子集。

<asp:XmlDataSource ID="myXmlDataSource" runat="server" DataFile="~/temp.xml" TransformFile="~transXml" XPath="//User"></asp:XmlDataSource>

表格式数据绑定控件绑定到分层数据源也是可行的,但是它只能显示第一层数据。在下面的demo中,Repeater控件绑定到 temp.xml文件。由于数据源暴露的顶层节点是<User/>节点,Repeater可以在自己的ItemTemplate模板中使用Eval数据绑定语法绑定到这些节点的属性。

     <asp:Repeater runat="server" ID="myReater2" DataSourceID="myXmlDataSource">
        <HeaderTemplate>标题</HeaderTemplate>
        <ItemTemplate>
        <ul>
            <li>姓名:<%# Eval("Name") %></li>
            <li>Email:<%# Eval("Email") %></li>
        </ul>
        </ItemTemplate>
        <FooterTemplate></FooterTemplate>
        </asp:Repeater>

    除了Eval数据绑定语法之外,ASP.NET 2.0还提供了基于XPath的数据绑定语法,在实现了IXPathNavigable接口的任何数据项上都可以使用它。这里介绍两种常用的表达式类型:
    ◆XPath(expression, [formatString]) - 根据数据项计算Xpath表达式的值,返回单个值。
    ◆XPathSelect(expression, [formatString]) - 根据数据项计算Xpath表达式的值,返回节点列表。

    下面我们来看看使用Xpath数据绑定方法的优势,通过一个demo来说明.


    Repeater的ItemTemplate模板另外增加了一个Repeater,并把这个内部Repeater的属性绑定到一个描述当前User节点的Reply子节点的XPathSelect表达式。在内部Repeater的ItemTemplate模板中,Xpath数据绑定表达式根据这些"Reply"内容节点来计算值。ASP.NET 2.0利用这种技术,使你能够通过组合表格式数据绑定控件简便地构造出丰富的、分层的数据显示方式。

 <asp:Repeater runat="server" ID="myRpeater"  DataSourceID="myXmlDataSource">
        <HeaderTemplate><ul>标题</HeaderTemplate>
        <ItemTemplate>
            <li>ID:<%# XPath("@ID") %></li>
            <li>姓名:<%#XPath("Name")%></li>
            <li>Email:<%#XPath("Email")%></li>
            <li>Content:<%#XPath("Content")%></li>
            <li>
                <asp:Repeater runat="server" ID="childRepeater" DataSource='<%# XPathSelect("Reply") %>'>
                <HeaderTemplate><ul>留言</HeaderTemplate>
                <ItemTemplate>
                    <ul>
                        <li>ReplyID:<%#XPath("ID") %></li>
                        <li>Time:<%# XPath("Time") %></li>
                        <li>Content:<%# XPath("Content") %></li>
                    </ul>
                </ItemTemplate>
                <FooterTemplate></ul></FooterTemplate>
                </asp:Repeater>
            </li>
        </ItemTemplate>
        <FooterTemplate></ul></FooterTemplate>
        </asp:Repeater>

   

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题
 ·展现C#世界 C#程序设计专题
 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 ·JAVA开发利器——JBuilder知多少
 ·Hello,web2.0技术进阶专题
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航