内的ItemDataBound的XPath直放站 [英] Xpath within ItemDataBound for Repeater

查看:135
本文介绍了内的ItemDataBound的XPath直放站的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好了,所以我从拉Feedburner的一个XML饲料中,使用的XmlDataSource和中继器。

Okay so I'm pulling in an XML feed from feedburner, using an XMLDataSource and a repeater.

<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的是空的,标题包括标题和日期[尽管它可以很容易地被分割,因为日期总是以结尾:(冒号)

Now the problem I'm running into is, "pubdate" is empty, and title includes both the title and date [though it can easily be split because the date always ends in a : (colon)

所以,我需要能在code要做到这一点落后。

So I need to be able to do this in the code behind.

不过,我无法得到这个在code后面的工作。

However, I'm unable to get this to work in the code behind.

我已经试过这样的事情(现在是理所当然的,我是一个总福利局当涉及到XML)

I've tried something like this (now granted, I'm a total newb when it comes to XML)

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

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

所以,我想这一点,但xePage总是显示HasAttributes为假,从来没有发现的称号。 xePage.InnerXML似乎包含正确的数据,但我并不想尝试手工解析的事情了。

So I tried this, but xePage always shows "HasAttributes" as false, and never finds the title. xePage.InnerXML seems to contain the proper data, but I don't want to try and parse things out manually.

任何人都可以点我更好的方向是什么,我做错了?

Can anyone point me in a better direction on what I'm doing wrong?

谢谢!

推荐答案

在你的 OnItemBound 事件试试这个吧。

In your OnItemBound event try this instead.

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

这篇关于内的ItemDataBound的XPath直放站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆