为什么XmlDocument在执行此XPath请求时抛出?

时间:2009-02-28 22:24:51

标签: .net xml xpath

var xmlDoc = new XmlDocument();
xmlDoc.Load("XMLFile1.xml");
XmlNamespaceManager manager = new XmlNamespaceManager(xmlDoc.NameTable);
manager.AddNamespace("frbny", "urn:toto");
var curs = xmlDoc.SelectNodes("/frbny:DataSet/frbny:Series/frbny:Key/frbny:CURR");
var values = xmlDoc.SelectNodes("/frbny:DataSet/frbny:Series/frbny:Obs/frbny:OBS_VALUE");

为什么这段代码不起作用?它抛出第一个xmlDoc.SelectNodes,说他找不到命名空间管理器或XsltContext ......

我做了同样的事情:http://support.microsoft.com/kb/318545

1 个答案:

答案 0 :(得分:2)

您没有将命名空间管理器传递给select节点调用,但是您在xpath中使用了命名空间。

var curs = xmlDoc.SelectNodes("/frbny:DataSet/frbny:Series/frbny:Key/frbny:CURR", manager); 

将阻止异常。