То, что я пытаюсь сделать, - это создать идеально вложенный список, в основном двумерный список или двумерный массив, если это лучше для этой задачи, это будет работать следующим образом ID => 1 Name => Hickory
без явного выбора узла.
Я мог бы использовать SelectNode (Вудс / Вуд) и затем сделать что-то вроде node["ID"].InnerText
, но для этого потребовалось бы знать, как называется узел.
Предположим, что это будет читать wood.xml
, даже если вместо 7 будет 36 узлов, и что я никогда не узнаю имя узлов.Я попытался использовать outerxml
/ innerxml
, но это дает мне слишком много информации.
XmlDocument doc = new XmlDocument();
doc.Load("wood.xml");
//Here is wood.xml
/*<Woods><Wood><ID>1</ID><Name>Hickory</Name><Weight>3</Weight><Thickness>4</Thickness><Density>5</Density><Purity>6</Purity><Age>7</Age></Wood><Wood><ID>2</ID><Name>Soft Maple</Name><Weight>3</Weight><Thickness>4</Thickness><Density>5</Density><Purity>6</Purity><Age>7</Age></Wood><Wood><ID>3</ID><Name>Red Oak</Name><Weight>3</Weight><Thickness>4</Thickness><Density>5</Density><Purity>6</Purity><Age>7</Age></Wood></Woods>*/
XmlNode root = doc.FirstChild;
//Display the contents of the child nodes.
if (root.HasChildNodes)
{
for (int i=0; i<root.ChildNodes.Count; i++)
{
Console.WriteLine(root.ChildNodes[i].InnerXml);
Console.WriteLine();
}
Console.ReadKey();
}
Это позволило бы мне в принципе создать деревянный буфер " ", если хотите, яможно получить доступ к этим значениям в другом месте.
Извините, если мне было неясно, я хочу сделать это "абстракция" из-за отсутствия лучшего слова.
Так что если бы я когда-нибудь сменил имя«Weight» - «HowHeavy» или если бы я добавил дополнительный элемент «NumberOfBranches», мне не пришлось бы жестко задавать структуру XML-файла.