好的,我正在使用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”显示为false,并且永远不会找到标题。 xePage.InnerXML似乎包含正确的数据,但我不想尝试手动解析。
有人能指出我在做错的方向上有更好的方向吗?
谢谢!
答案 0 :(得分:2)
在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;
}