XML интерпретация файла и манипуляции - PullRequest
0 голосов
/ 24 июня 2009
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <MyData>
    <MyField>SomeValueHere1</MyField>
    <MyComplexData>
      <MyComplexDataField1 property="1"></MyComplexDataField1>
      <MyComplexDataField2 someproperty"value1"> value1 </MyComplexDataField1>
    </MyComplexData>
  </MyData>
  <MyData>
    <MyField>SomeValueHere11</MyField>
    <MyComplexData>
      <MyComplexDataField1 property="4"></MyComplexDataField1>
      <MyComplexDataField2 someproperty="value1"> value2 </MyComplexDataField1>
      </MyComplexData>
  </MyData>
  <MyData>
    <MyField>SomeValueHere13</MyField>
    <MyComplexData>
      <MyComplexDataField1 property="5"></MyComplexDataField1>
      <MyComplexDataField2 someproperty="value1"> value </MyComplexDataField1>
    </MyComplexData>
  </MyData>
  .
  .
  .
  .
</root>

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

Какие все API-интерфейсы System.Xml мне следует изучить? - .Net и C #

Пожалуйста, ведите меня.

Ответы [ 2 ]

0 голосов
/ 24 июня 2009

Если вы хотите использовать сериализацию XML, вы можете объявить что-то вроде этого:

public class root
{

    [XmlElement("MyData")]
    public List<MyData> Items { get, set }

}

public class MyData
{
    ...
}

Чтобы выполнить десериализацию и выполнить цикл по объектам MyData, используйте следующий код:

XmlSerializer xs = new XmlSerializer(typeof(root));
root r;
using (StreamReader reader = new StreamReader(filename))
{
    r = xs.Deserialize(reader) as root;
}

foreach(MyData d in r.Items)
{
    ...
}
0 голосов
/ 24 июня 2009

Это способ работы в .NET 2.0 - использование XmlDocument из System.Xml.

XmlDocument xdoc = new XmlDocument();

xdoc.Load('(your file name)');

XmlNodeList myDataList = xdoc.SelectNodes('//MyData');

foreach(XmlNode dataNode in myDataList)
{
  // do whatever oyu need to do with your myData nodes
}

Ознакомьтесь с документацией MSDN для класса XmlDocument . Это должно дать вам представление о том, как обращаться с XML-документами.

Подход XML Document отлично подходит для документов малого и среднего размера (размером менее нескольких мегабайт), поскольку он загружает весь документ в память одновременно и позволяет перемещаться по документу и манипулировать им.

. С версией .NET 3.5 и выше вы получаете новый подход "LINQ to XML" с использованием XDocument - ознакомьтесь с документацией MSDN по нему здесь .

Марк

...