} // NamedParse public Dictionary <string, ParsedData> NamedParse(XmlNode oRoot) { if (oRoot == null) { throw new OwnException("XML root node is not specified."); } var oResult = new Dictionary <string, ParsedData>(); m_oGroups.ForEach(grp => { var oGroupData = new ParsedData(grp); oResult[grp.Name] = oGroupData; oGroupData.Parse(oRoot, this); }); return(oResult); } // NamedParse
} // Parse private void ParseOne(XmlNode oNode, SafeLog oLog) { var oData = new ParsedDataItem(); foreach (KeyValuePair <string, OutputFieldBuilder> pair in m_oFieldGroup.OutputFieldBuilders) { pair.Value.Clear(); } foreach (Field fld in m_oFieldGroup.Fields) { XmlNode oValue = oNode.SelectSingleNode(fld.SourcePath); string sValue = (oValue == null) ? null : oValue.InnerText; fld.SetValue(sValue); } // for each field foreach (KeyValuePair <string, OutputFieldBuilder> pair in m_oFieldGroup.OutputFieldBuilders) { oData[pair.Key] = pair.Value.Build(); } if (m_oFieldGroup.HasChildren()) { foreach (var grp in m_oFieldGroup.Children) { var oGroupData = new ParsedData(grp); oData.Children[grp.Name] = oGroupData; oGroupData.Parse(oNode, oLog); } // foreach child } // if Data.Add(oData); } // ParseOne