Pergunta

Ok, então eu estou puxando em um feed XML de FeedBurner, usando um XmlDataSource e um repetidor.

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

Agora, o problema que eu estou correndo em é, "pubdate" está vazio, eo título inclui tanto o título ea data [embora possa facilmente ser dividida porque a data sempre termina em um: (dois pontos)

Então eu preciso ser capaz de fazer isso no trás código.

No entanto, eu sou incapaz de chegar a este trabalho no trás código.

Eu tentei algo parecido com isso (agora concedido, eu sou um newb total quando se trata de XML)

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

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

Então, eu tentei isso, mas xePage mostra sempre "HasAttributes" como falsa, e nunca encontra o título. xePage.InnerXML parece conter os dados apropriados, mas eu não quero tentar as coisas de análise manualmente.

Alguém pode me apontar uma direção melhor sobre o que estou fazendo de errado?

Obrigado!

Foi útil?

Solução

Em seu evento OnItemBound tente isso em vez.

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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top