Question

D'accord, j'inscris un flux XML à partir de feedburner, à l'aide d'un XMLDataSource et d'un répéteur.

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

Le problème que je rencontre est le suivant: "pubdate". est vide et title contient à la fois le titre et la date [bien qu'il puisse être facilement scindé car la date se termine toujours par un: (deux points)

J'ai donc besoin de pouvoir le faire dans le code derrière.

Cependant, je ne parviens pas à ce que cela fonctionne dans le code derrière.

J'ai essayé quelque chose comme ceci (maintenant, je suis un newb total en XML)

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

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

J'ai donc essayé cela, mais xePage affiche toujours "HasAttributes". comme faux, et ne trouve jamais le titre. xePage.InnerXML semble contenir les données appropriées, mais je ne veux pas essayer d’analyser les choses manuellement.

Quelqu'un peut-il m'indiquer mieux ce que je fais de mal?

Merci!

Était-ce utile?

La solution

Dans votre événement OnItemBound , essayez plutôt ceci.

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top