好的,我正在使用XMLDataSource和转发器从feedburner中提取XML Feed。

<asp:Repeater ID="rptrEvents" OnItemDataBound="rptrEvents_ItemDataBound" DataSourceID="XmlDataSource1" runat="server">
    <ItemTemplate>
            <li runat="server" id="liLineItem">
                <a href="<%#XPath("link")%>">
                    <span><%#XPath("pubdate")%></span>
                    <%#XPath("title")%>
                </a>
            </li>
    </ItemTemplate>
</asp:Repeater>

现在我遇到的问题是“pubdate”。是空的,标题包括标题和日期[虽然它可以很容易地分开,因为日期总是以:(冒号)结束

所以我需要能够在后面的代码中执行此操作。

但是,我无法在后面的代码中使用它。

我尝试过这样的事情(现在已经批准了,在XML方面我是个新手)

IXPathNavigable x = (IXPathNavigable)e.Item.DataItem;
XPathNavigator nav = x.CreateNavigator();

XmlElement xePage = (XmlElement)nav.UnderlyingObject;
string title = xePage.GetAttribute("title");

所以我尝试了这个,但是xePage总是显示“HasAttributes”。为假,从未找到标题。 xePage.InnerXML似乎包含正确的数据,但我不想尝试手动解析。

有人能指出我在做错的方向上有更好的方向吗?

谢谢!

有帮助吗?

解决方案

OnItemBound 事件中尝试此操作。

protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    IXPathNavigable x = (IXPathNavigable)e.Item.DataItem;
    XPathNavigator nav = x.CreateNavigator();
    XmlElement xePage = (XmlElement)nav.UnderlyingObject;
    string title = xePage.SelectSingleNode("title").InnerText;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top