RepeaterのItemDataBound内のXpath
-
06-07-2019 - |
質問
さて、XMLDataSourceとリピーターを使用して、feedburnerからXMLフィードを取り込みます。
<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には適切なデータが含まれているようですが、手動で物事を解析しようとは思いません。
誰かが私が間違っていることについてより良い方向に私を向けることができますか?
ありがとう!
解決
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;
}
所属していません StackOverflow