我正在尝试学习一些Linq to XML的东西,我在XElement中遇到了XPathSelectElement函数。这个功能似乎只是我需要的,但由于某种原因,我不能使用它!看看我的代码:
XElement rootElement = XElement.Load(dataFile);
XElement parentElement = rootElement.XPathSelectElement(xPath);
我在所需的任何地方都包含对System.Xml.Linq的引用。我尝试过的那个库中的所有其他东西似乎都在工作,但XPathSelectElement甚至没有出现在visual studio的Intellisense中。
构建上述代码时,出现以下错误:
错误1'System.Xml.Linq.XElement' 不包含的定义 'XPathSelectElement'并没有扩展名 方法'XPathSelectElement'接受 类型的第一个参数 'System.Xml.Linq.XElement'可以 发现(你错过了使用 指令或程序集 参考?)C:\ PageHelpControl \ PageHelp.cs 155 50 HelpControl
答案 0 :(得分:53)
您尝试使用的方法是扩展方法。您需要包含System.Xml.XPath命名空间。
答案 1 :(得分:15)
将这两个答案联系在一起......
XPathSelectElement
是一种扩展方法。要将用作扩展方法(即好像它是XNode
上的实例方法),您需要在相应命名空间的源代码中使用using
指令:
using System.Xml.XPath;
(这就是包含扩展方法的Extensions
类所在的位置。)
这与您在代码中需要using System.Linq;
的方式相同,然后才能在Select
上使用Where
,IEnumerable<T>
等。