如何在XML doc中读取多个记录

时间:2009-02-05 04:48:26

标签: asp.net xml

我可以使用我的一些代码从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中读取多个记录的示例。

我正在尝试考虑存储每条记录的最理想的轻量级对象,以便稍后我可以迭代它。

3 个答案:

答案 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文档的最快(仅转发)方法。