使用c#获取xml节点

本文关键字:节点 xml 获取 使用 | 更新日期: 2023-09-27 18:30:00

我有一个返回大型xml文件的请求。我的应用程序中有XmlDocument类型的文件。从那个文档中,我如何读取这样的元素:

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

我想从那个元素中提取那个值final。此外,如果我也有多个元素,我可以把它拉到一个列表中吗?谢谢你的建议。

使用c#获取xml节点

如果您已经有了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);
} 

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

您可以尝试使用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)
       {
       }           

感谢

Deepu