选择单节点在XML
问题描述:
我的XML是一个喜欢选择单节点在XML
<linkToFooterRepository>1054</linkToFooterRepository>
<linkToTopNavRepository>1188</linkToTopNavRepository>
<author>1413</author>
,然后我有
var xmlListItems = xPathNavigator.Select(xPathChildren)
.Cast<XPathNavigator>()
.OrderByDescending(x =>
{
var xmlNode = x.SelectSingleNode("author=1413");
})
.Skip(pager.CurrentPageIndex * pager.PageSize)
.Take(pager.PageSize);
我不断收到一个表达式必须节点集错误。我对Xpath相当陌生,所以我认为我通过作者的方式会导致这个错误。我计划将作者ID(1413)变成一个变量,供许多作者使用。
感谢
答
尝试这样的事情(假设你有一个根元素):
var xmlNode = x.SelectSingleNode(@"/root/author[text()=1413]");
我创造了这个简单的代码,因为你的XML不包含根元素。
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]
您可以在XML的开头发布更多的文件,即最初的行吗? – Tony
你如何得到你的'x'变量? – parameter
您的语法关闭。 XPath应该是''author [text()='1413']“'请参阅http://stackoverflow.com/q/3206975/215552。 –