我有这个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;
}
但这不是最实用的方法。
答案 0 :(得分:0)
由于您使用的是.NET,因此您可能会花一些时间学习LINQ to XML,因为它听起来会像您想要的那样。
有很多在线文档,特别是如何进行各种基本查询以从特定节点获取信息:http://msdn.microsoft.com/en-us/library/bb943906.aspx
您还可以使用XPath获得相同的结果。
或者您可以手动遍历节点,但您必须正确处理子节点(正如您已经发现的那样)。