Frage

Okay, so in einem XML-Feed von Feedburner Ich ziehe eine XmlDataSource und einen Repeaters.

<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>

Jetzt das Problem, das ich laufen werde in ist „pubdate“ ist leer, und der Titel sowohl den Titel und das Datum [obwohl es leicht geteilt werden kann, weil das Datum endet immer in einem: (Doppelpunkt)

Also ich muß in der Lage sein, dies hinter im Code zu tun.

Aber ich bin nicht in der Lage dies hinter dem Code zur Arbeit zu kommen.

Ich habe so etwas wie dies versucht (jetzt gewährt, ich bin ein totaler Noob, wenn es um XML kommt)

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

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

So habe ich versucht, diese, aber xePage zeigt immer „HasAttributes“ als falsch, und findet nie den Titel. xePage.InnerXML scheint die richtigen Daten zu enthalten, aber ich will nicht, um zu versuchen, die Dinge zu analysieren, manuell.

Kann mir jemand Punkt in eine bessere Richtung auf das, was ich falsch mache?

Danke!

War es hilfreich?

Lösung

In Ihrem OnItemBound Fall versuchen, dies statt.

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top