从XML文档中提取元素

有人可以告诉我如何使用.NET 3.5框架下的XPath和C#从下面的XML中提取Errors元素吗?

      COMPANY NAME FIELD IS INVALID       

如果您没有向我们展示您的代码,我们无法分辨您出错的地方。

但我们可以猜到。 您的Errors元素位于命名空间中,并且未能识别这一事实是缺乏经验的常见错误,我很乐意打赌这是您的错误。

要在命名空间中查找元素,您需要一个路径,例如// e:错误,其中前缀e被绑定(在C#API级别)到命名空间http://www.opentravel.org/OTA/2003/05 。

(对不起,你没有说你没经验。我推断这是因为如果你有经验,你会发布你的XPath代码)。

试试这段代码:

 XmlDocument xmlDoc = new XmlDocument(); xmlDoc .LoadXml(xmlSting); //If u have a xml string, you can create xmlDocument like this, otherwise u can use file name to create xmlDocument. String error = .SelectSingleNode("SOAP-ENV:Envelope/SOAP-ENV:Body/return/Errors/Error").Value; 
 XmlNodeList errorNodes=new XmlDocument().Load("xmlFilePath").GetElementsByTagName("Errors"); 

使用

 //*[name()='Errors'] 

这将选择XML文档中的任何元素,其名称为“错误” – 无论元素的名称空间如何。

或者,如果您想要更精确并考虑元素所在的确切命名空间,则需要使用XmlNamespaceManager对象并使用其AddNamespace()方法注册前缀和命名空间之间所需的任何关联。