首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 GridView 綁定 XmlDocument 物件:動態載入 RSS Feed 實戰

     編輯:關於ASP.NET

ASP.NET 2.0 提供多種資料來源控件,XmlDataSource 通常直接指向 XML 檔案路徑。但實務上常需動態產生或從遠端載入 XML(如 RSS Feed),此時可將 XmlDocument 物件指派給 XmlDataSource.Data 屬性實現繫結。

完整實作範例:顯示 RSS Feed 標題與發布日期

VB.NET 版本

<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim doc As New System.Xml.XmlDocument
    doc.Load("https://dotnet.aspx.cc/Rss.aspx")
    XmlDataSource1.Data = doc.InnerXml
    XmlDataSource1.XPath = "/rss/channel/item"
End Sub
</script>
<html xmlns="https://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" DataSourceID="XmlDataSource1" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="文章標題">
            <ItemTemplate>
                <asp:HyperLink runat="server" Target="_blank" NavigateUrl='<%# XPath("link") %>'>
                    <%# XPath("title") %>
                </asp:HyperLink>
                [<%# CType(XPath("pubDate"), DateTime).ToString("yyyy年M月d日") %>]
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
</form>
</body>
</html>

C# 版本

<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected void Page_Load(object sender, System.EventArgs e)
{
    System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
    doc.Load("https://dotnet.aspx.cc/Rss.aspx");
    XmlDataSource1.Data = doc.InnerXml;
    XmlDataSource1.XPath = "/rss/channel/item";
}
</script>
<html xmlns="https://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" DataSourceID="XmlDataSource1" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="文章標題">
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%# XPath("link") %>'>
                    <%# XPath("title") %>
                </asp:HyperLink>
                [<%# (DateTime.Parse(XPath("pubDate").ToString().Replace("GMT",""))).ToString("yyyy年M月d日") %>]
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
</form>
</body>
</html>

關鍵技術要點

  1. XmlDocument.Load() 支援 HTTP URL 直接載入遠端 XML
  2. XmlDataSource.Data 屬性接受 XML 字串(InnerXml),不限於檔案路徑
  3. XPath 篩選 精確定位重複節點(如 /rss/channel/item)
  4. TemplateField + XPath() 靈活格式化輸出,含日期解析與超連結產生

此模式適用於任何動態 XML 來源:Web Service 回應、組態檔合併、記憶體產生的報表資料等,極大擴展了 XmlDataSource 的實用範圍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved