我想查询元素
<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]' 有一个无效的令牌。“}
答案 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);