3

さて、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 には適切なデータが含まれているようですが、手動で解析したくありません。

私が間違っていることについて、誰かが私をより良い方向に向けることができますか?

ありがとう!

4

1 に答える 1

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;
}
于 2009-11-29T01:36:00.060 に答える