C#XPathSelectElement查找具有特定值的元素

时间:2012-08-13 10:28:07

标签: c# xpath

我想查询元素

<Identifier>var1</Identifier>

在另一个元素中,var1的命名空间是 http://schemas.microsoft.com/2011/07/AppServer/Transforms

我使用了语句element.XPathSelectElement({"'//{http://schemas.microsoft.com/2011/07/AppServer/Transforms}Identifier[=var1]');

"{http://schemas.microsoft.com/2011/07/AppServer/Transforms}Identifier"是来自标识符的XName的toString()返回值。

XPathSelectElement抛出以下异常:

  

{“ '//{http://schemas.microsoft.com/2011/07/AppServer/Transforms}Identifier[=var1]'   有一个无效的令牌。“}   

1 个答案:

答案 0 :(得分:1)

XName和XPath没有集成,要么使用LINQ to XML方法,例如

  element.Descendants(yourXNameVar + "Identifier").FirstOrDefault(el => el.Value == "var1")

或使用带有http://msdn.microsoft.com/en-us/library/bb351355.aspx的XPath方法,例如

  XmlNamespaceManager mgr = new XmlNamespaceManager(new NameTable());
  mgr.AddPrefix("df", "http://schemas.microsoft.com/2011/07/AppServer/Transforms");
  element.XPathSelectElement("//df:Identifier[. = 'var1']", mgr);