2017-02-13 5 views
0

meine XML ist Single wieAuswahl Single Node im XML-

<linkToFooterRepository>1054</linkToFooterRepository> 
<linkToTopNavRepository>1188</linkToTopNavRepository> 
<author>1413</author> 

und ich habe dann

var xmlListItems = xPathNavigator.Select(xPathChildren) 
      .Cast<XPathNavigator>() 
      .OrderByDescending(x => 
      { 
       var xmlNode = x.SelectSingleNode("author=1413"); 


      }) 
      .Skip(pager.CurrentPageIndex * pager.PageSize) 
      .Take(pager.PageSize); 

Ich halte eine Expression immer an einen Knotensatz Fehler auswerten müssen. Ich bin ziemlich neu zu Xpath, also denke ich, etwas mit, wie ich Autor überlasse, erhält diesen Fehler. Mit der Zeit plane ich, die Autoren-ID (1413) zu einer Variablen zu machen, die mit vielen Autoren verwendet werden kann.

dank

+0

Können Sie mehr der Datei, die ersten Zeilen, am Anfang der XML-Datei? – Tony

+0

Wie bekommen Sie Ihre 'x' Variable? – parameter

+2

Ihre Syntax ist deaktiviert. Der XPath sollte "" autor [text() = '1413'] "' Siehe http://stackoverflow.com/q/3206975/215552 sein. –

Antwort

1

Versuchen so etwas (vorausgesetzt, Sie ein Wurzelelement haben):

var xmlNode = x.SelectSingleNode(@"/root/author[text()=1413]"); 

ich diesen einfachen Code erstellt, weil Ihr XML kein Root-Element enthalten.

var xml = 
      "<root>" + 
      " <linkToFooterRepository>1054</linkToFooterRepository>" + 
      " <linkToTopNavRepository>1188</linkToTopNavRepository>" + 
      " <author>1413</author>" 
      "</root>" 
      ; 

var x = new XmlDocument(); 
x.LoadXml(xml); 

var xmlNode = x.SelectSingleNode(@"/root/author[text()='1413']"); // /author=[1413]