Как читать дочерние элементы XML-элемента с помощью C#
Всем Привет,
Я хочу прочитать ниже xml-данные.
&ЛТ;идентификатор версии метаданных идентификатор объекта="CDASH_MetaDataVersion_2011-10-24" наименование="CDASH МДВ"&ГТ;
&ЛТ;FormDef ОИД="Ф. AE_2011-10-24" наименование="неблагоприятное событие" повторяя="нет"и GT;
<ItemGroupRef Mandatory="Yes" ItemGroupOID="IG.AEYN_2011-10-24"/>
<ItemGroupRef Mandatory="Yes" ItemGroupOID="IG.AE_DETAILS_2011-10-24"/>
Если вы видите, что мне нужны данные из элемента "FORMDef" и хотите проверить, есть ли у него "ItemGroupRef", то я хочу прочитать. Когда я читаю с помощью XMLTextreader, я могу прочитать "FormDef", но я хочу прочитать "ItemGroupRef" в том же цикле. Если он присутствует, то прочитайте и переместите читателя к следующему элементу.
Теперь, когда я читаю моя программа выходит на "FORMDef" и в следующем цикле он собирается "ItemGroupRef", но с "ItemGroupRef" - это вспомогательный элемент "FormDef" я хочу, чтобы прочитать его на одном дыхании и переместить читателя к следующему.
Детская Помощь
Что я уже пробовал:
public ArrayList Form_data = new ArrayList(); public struct Form_attr { public string OID; public string Name; public string repeating; }; public frmMain() { InitializeComponent(); load_XML(); } public void load_XML() { Form_attr fa; try { XmlTextReader reader = new XmlTextReader("updated.xml"); while (reader.Read()) { if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "FormDef")) { if (reader.HasAttributes) { fa.OID = reader.GetAttribute("OID"); fa.Name = reader.GetAttribute("Name"); fa.repeating = reader.GetAttribute("Repeating"); Form_data.Add(fa); } } /* else if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "FormDef"))*/ } } catch (Exception e) { MessageBox.Show(e.Message); } finally { } for (int i = 0; i < Form_data.Count; i++) { Form_attr test = (Form_attr)Form_data[i]; Console.WriteLine("Form OID--> "+test.OID+" Name==>"+test.Name+" Repeating-->"+test.repeating ); } } } }