获取XML文件的部分数据

时间:2012-12-11 01:56:45

标签: c# xml xmldocument

我有这个xml file,其中包含来自tagchimp的信息,但该文件包含了大量信息。我如何只加载我需要的信息。我找到了一些代码:

XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("movie");

foreach (XmlNode node in nodes)
{
    string date = node["tagChimpID"].InnerText;
    string name = node["locked"].InnerText;
    Console.WriteLine("Id:" + date + " Locked:" + name);
} 

但它只加载元素而不是子元素,例如movieTitle或shortDescription

我找到了一种方法:

public static string Test(string path, XmlElement nodes)
    {
        string Name = "";
        string releaseDate = "";
        XmlNodeList xnList = nodes.SelectNodes("/items/movie");
        XmlNode eNode;
        foreach (XmlNode xn in xnList)
        {
             eNode = xn.SelectSingleNode("movieTags/info/movieTitle");

            if (eNode != null)
            {
                Name = eNode.InnerText;
            }


           eNode= xn.SelectSingleNode("movieTags/info/releaseDate");
                releaseDate = eNode.InnerText;
        }

但这不是最实用的方法。

1 个答案:

答案 0 :(得分:0)

由于您使用的是.NET,因此您可能会花一些时间学习LINQ to XML,因为它听起来会像您想要的那样。

有很多在线文档,特别是如何进行各种基本查询以从特定节点获取信息:http://msdn.microsoft.com/en-us/library/bb943906.aspx

您还可以使用XPath获得相同的结果。

或者您可以手动遍历节点,但您必须正确处理子节点(正如您已经发现的那样)。