Как читать несколько записей в XML-документе - PullRequest
0 голосов
/ 05 февраля 2009

Я могу читать одну запись из 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 (puke)

Я не обязательно ищу точный код (обязательно, если он у вас есть, спасибо), но статья, которая описывает или показывает пример чтения нескольких записей в .NET.

Я пытаюсь придумать самый идеальный легкий объект для хранения каждой записи, чтобы я мог повторить его позже.

Ответы [ 3 ]

1 голос
/ 05 февраля 2009

Вы можете читать 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

Вот как отсортировать список Как отсортировать общий список

0 голосов
/ 05 февраля 2009

Когда мне нужно сделать что-то быстро, я всегда использую XmlTextReader, который является самым быстрым (только для пересылки) методом для анализа XML-документа.

0 голосов
/ 05 февраля 2009

XPathDocument (CreateNavigator) и XPathNavigator - это классы, которые вы можете использовать.

Кроме того, XPathNavigator имеет метод Select, который принимает выражение XPath (например, // альбом)
Выше XPath выражение означает - получить все узлы с именем альбома в любом месте документа.

Надеюсь, это даст вам подсказки, где искать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...