我可以使用我的一些代码从Xml中读取一条记录,但是如何在xml文件中读取多条记录,如:
<?xml version="1.0" encoding="UTF-8"?>
<XXX_XXX_response xmlns="http://example.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/1.0/ http://example.com/1.0/XXX.xsd" list="true">
<album>
<id>7031990242326938677</id>
<pid>7031990241327042549</pid>
<owner>1642262814</owner>
<location>CA</location>
</album>
<album>
<id>7031994332086936240</id>
<pid>703199322241087005994</pid>
<owner>1633262814</owner>
<location/>
</album>
<album>
<id>7031990241086937544</id>
<pid>7031990241087026027</pid>
<location/>
</album>
<album>
<id>70319902431086936188</id>
<pid>7033490241087005114</pid>
<owner>1633262814</owner>
<location/>
</album>
</XXX_XXX_response>
如何遍历每个专辑,以及之后保存该数据(什么样的列表对象等)的好容器?不,我不是在谈论DataSet(呕吐)
我不是必须找到确切的代码(确定,如果你有它感谢),但是一篇文章涉及或显示了在.NET中读取多个记录的示例。
我正在尝试考虑存储每条记录的最理想的轻量级对象,以便稍后我可以迭代它。
答案 0 :(得分:1)
您可以像这样读取xml并将类Album的对象存储在通用列表中。
List<Album> albums = new List<Album>();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("MyXml.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/album");
foreach (XmlNode node in nodes)
{
Album album = new Album();
album.id = node["id"].InnerText;
albums.Add(album);
}
以下是搜索列表search-for-object-in-generic-list
的方法以下是如何对列表How to sort a generic List
进行排序答案 1 :(得分:0)
XPathDocument(CreateNavigator)&amp; XPathNavigator是您可以使用的类。
此外,XPathNavigator具有采用XPath表达式的Select方法(例如//专辑)
上面的XPath表达式意味着 - 在文档中的任何位置获取名为album的所有节点。
希望这能指出你在哪里寻找
答案 2 :(得分:0)
当我需要快速做事时,我总是使用XmlTextReader,它是解析XML文档的最快(仅转发)方法。