使用C#获取特定XML元素值的问题

假设我有以下XML文档,如何获取:name的元素值(在我的示例中,值是星期六100)? 我的困惑是如何处理名称空间。 谢谢。

我正在使用C#和VSTS 2008。

    Saturday 100     

如果使用LINQ to XML类,则更容易。 否则命名空间真的很烦人。

 XNamespace ns = "http://schemas.datacontract.org/2004/07/FOO.WCF"; var doc = XDocument.Load("C:\\test.xml"); Console.Write(doc.Descendants(ns + "name").First().Value); 

编辑。 使用2.0

 XmlDocument doc = new XmlDocument(); doc.Load("C:\\test.xml"); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("a", "http://schemas.datacontract.org/2004/07/FOO.WCF"); Console.Write(doc.SelectSingleNode("//a:name", ns).InnerText); 

使用System.Xml.XmlTextReader类,

 System.Xml.XmlTextReader xr = new XmlTextReader(@"file.xml"); while (xr.Read()) { if (xr.LocalName == "name" && xr.Prefix == "a") { xr.Read(); Console.WriteLine(xr.Value); } } 

XPath是在2.0中获取XML文档位的直接方法

 XmlDocument xml = new XmlDocument(); xml.Load("file.xml") XmlNamespaceManager manager = new XmlNamespaceManager(xml.NameTable); manager.AddNamespace("a", "http://schemas.datacontract.org/2004/07/FOO.WCF"); string name = xml.SelectSingleNode("//a:name", manager).InnerText;