سؤال

وحسنا حتى أنا سحب في تغذية XML من فيدبورنر، وذلك باستخدام XMLDataSource ومكرر.

<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" فارغ، ويشمل عنوان كل من العنوان والتاريخ [على الرغم من أنه يمكن بسهولة تقسيم لأن التاريخ ينتهي دائما في: (القولون)

لذلك أنا بحاجة إلى أن تكون قادرة على القيام بذلك في التعليمات البرمجية خلف.

ولكن، أنا غير قادر على الحصول على هذا العمل في التعليمات البرمجية خلف.

ولقد حاول شيئا من هذا القبيل (منح الآن، أنا newb الكلي عندما يتعلق الأمر 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 لاحتواء البيانات المناسبة، ولكن أنا لا أريد في محاولة لتحليل الامور يدويا.

ويمكن لأي شخص لي نقطة في اتجاه افضل على ما أفعله خطأ؟

وشكرا!

هل كانت مفيدة؟

المحلول

في الحدث 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;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top