2012-05-23 2 views
0

Я хочу использовать xml-файл для хранения моих данных программы. Структура XML выглядит следующим образом:C# DataSet с глубиной более трех

<?xml version="1.0" standalone="yes"?> 
<Data> 
    <Projects> 
     <Project> 
      <Name>Name1</Name> 
      <Description>Description1</Description> 
     </Project> 
     <Project> 
      <Name>Name2</Name> 
      <Description>Description2</Description> 
     </Project> 
    </Projects> 
</Data> 

Я хочу использовать DataSet, поскольку он предлагает простое чтение и запись XML-структур. Но вопрос в том, как читать и записывать значения <Project> -Nodes? Я могу получить доступ к <Projects> -Node, но тогда я не знаю, как продолжить, поскольку одиночные проекты не являются таблицами, которые я думаю. Итак, как я могу получить доступ к узлам на глубине три (Data-> Projects-> Project)? Я думаю, что это должно работать как-то, так как чтение файла и вывод его на консоль действительно работают.

ответ

0

Вместо этого DataSet Я предлагаю вам вместо этого использовать XDocument и XElement, поскольку они могут предложить гораздо лучший API для доступа к элементам в структуре XML.

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx

Другая ссылка, которая может помочь вам начать работу:

How to Get XML Node from XDocument

+0

Хм ... звучит хорошо. Я думал, что будет проще использовать 'DataSet', но, похоже, это не так. Я буду искать классы, которые вы (и Даниэль) предложили. Благодаря... – AquilaRapax

0

Вам лучше попробовать это с классом Data, который имеет список объектов Project, проще сериализовать/десериализовать. Я не думаю, что его легче читать/писать xml с помощью набора данных.

0

Это звучит как DataSet не правильный путь для вас пойти. Он не предназначен для использования в качестве универсального механизма для чтения и записи произвольного XML.

Если вы используете .NET Framework 4 или новее, я предлагаю использовать XDocument вместо DataSet.

Если вы используете более старую версию .NET Framework, тогда есть много других опций, включая XmlDocument, XmlReader и XmlSerlializer. Какой выбор зависит от того, откуда поступают ваши данные и как вы хотите его обрабатывать.

Смежные вопросы