0

我有这个 xml文件,其中包含来自 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;
        }

但这不是最实用的方法。

4

1 回答 1

0

由于您使用的是 .NET,因此您可能会花一些时间来学习LINQ to XML,因为它听起来会满足您的需求。

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

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

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

于 2012-12-11T02:27:36.137 回答