使用c#获取xml节点

时间:2012-04-03 04:57:24

标签: c# xml

我有一个返回大型xml文件的请求。我在我的应用程序中有一个XmlDocument类型的文件。从那个Doc我怎么能读出这样的元素:

<gphoto:videostatus>final</gphoto:videostatus>

我想从该元素中获取最终值。另外,如果我也有多个元素,我可以将其拉入列表吗?谢谢你的任何建议。

3 个答案:

答案 0 :(得分:3)

如果您已经有一个XmlDocument,那么您可以使用函数GetElementsByTagName()来创建一个可以类似于数组访问的XmlNodeList。

http://msdn.microsoft.com/en-us/library/dc0c9ekk.aspx

//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");

//Display all the book titles.
XmlNodeList elemList = doc.GetElementsByTagName("title");
for (int i=0; i < elemList.Count; i++)
{   
  Console.WriteLine(elemList[i].InnerXml);
} 

答案 1 :(得分:1)

您可以使用XPath和SelectSingleNode SelectNodes选择节点。请查看http://www.codeproject.com/Articles/9494/Manipulate-XML-data-with-XPath-and-XmlDocument-C示例。然后你可以使用例如InnerText来获得最终结果。也许你需要使用命名空间(gphoto)。 //videostatus将选择所有视频元素

答案 2 :(得分:0)

您可以尝试使用LINQ

        XNamespace ns = XNamespace.Get(""); //use the xmnls namespace here
        XElement element = XElement.Load(""); // xml file path
        var result = element.Descendants(ns + "videostatus")
                     .Select(o =>o.Value).ToList();

       foreach(var values in value)
       {

       }           

由于

迪普