2009-11-28 6 views
2

좋아, XMLDataSource와 리피터를 사용하여 피드 버너에서 XML 피드를 가져오고있다.ItemDataBound 내의 리피터에 대한 Xpath

<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의는"비어있는, 그리고 제목은 제목과 날짜가 항상 끝나는 때문에 쉽게 분할 할 수 있지만 일 [모두 포함 : (콜론)

그래서 코드에서이 작업을 수행 할 수 있어야합니다.

그러나이 코드는 코드에서 작동하지 않습니다. 나는이 (가 XML에 올 때, 나는 총 newb 해요 지금 부여)

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

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

그래서 나는이 시도했지만 xePage는 항상 false로 "HasAttributes"를 보여주고, 뭔가를 시도했습니다

제목을 찾지 못한다. xePage.InnerXML에는 적절한 데이터가 포함되어있는 것처럼 보입니다. 그러나 수동으로 시도하고 분석하지 않으려합니다.

누군가 내가 잘못하고있는 것에 대해 더 나은 방향으로 나를 가리킬 수 있습니까?

감사합니다.

답변

1

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

감사합니다. 이 일을 내 인생에 알릴 수는 없었습니다. 나는 XML을 읽을 필요가있다. –

관련 문제