0

我想查询一个元素

<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]' 的令牌无效。"} .

4

1 回答 1

1

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

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

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

  XmlNamespaceManager mgr = new XmlNamespaceManager(new NameTable());
  mgr.AddPrefix("df", "http://schemas.microsoft.com/2011/07/AppServer/Transforms");
  element.XPathSelectElement("//df:Identifier[. = 'var1']", mgr);
于 2012-08-13T10:51:02.597 回答