首页 | 麦客学吧 | 视频教程 | FLASH小游戏 | 素材下载 | 常用工具
您当前的位置:首页 > 程序开发 > ASP.NET > 正文

基础:ASP.NET 2.0中XML数据的处理

出处:麦客学吧 [2008-7-31 9:47:49] 点击数:117
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>

【责任编辑: lanier

昵 称:麦客网友[游客]  如果您不想匿名评论请先登录注册
评 论:请自觉遵守互联网相关政策法规,管理员有权删除恶意评论、广告和违禁词语。

验证码: 验证码,看不清楚?请点击刷新验证码    
麦客酷站赏析频道

精彩图文推荐

关于本站 - 联系站长 - 广告服务 - 合作伙伴 - 网站地图 - 版权声明 - 报告错误 - 收藏本站 | Http://www.MaiCoo.com

Copyright © 2005 - 2008 MaiCoo.com All Rights Reserved

违法和不良信息举报中心 本站服务器空间和带宽由雷克斯网络提供赞助
浙ICP备06017818号