2012-08-13 46 views
0

我想查詢一個元素C#XPathSelectElement找到元素具有特定值

<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

對於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); 
相關問題