public void Process(string filePath) { isBusy = true; if (FilePath == null) { FilePath = new List <string>(); } FilePath.Add(filePath); xmlDocument = new XmlDocument(); try { xmlDocument.LoadXml(this.xmlString); } catch (XmlException erro) { throw erro; } IBasicData rootNodeData = new OtherData(); rootNodeData.SetXmlChildreParentID(-1); rootNodeData.SetXmlChildreID(0); rootNodeData.TagName = "uiConfig"; FirstItens = rootNodeData; loadXmlNodes(rootNodeData, xmlDocument.ChildNodes.Item(1)); if (LoadFinish != null) { isBusy = false; LoadFinish(); } }
//private int count = 0; private void loadXmlNodes(IBasicData parentBasicData, XmlNode xmlNode) { // este simbolo faz ocorrer um erro no xml: --> //Debug.WriteLine(count++); int index = 1; XmlNodeList FirstsNodes = xmlNode.ChildNodes; IBasicData tempBasicData = null; foreach (XmlNode item in FirstsNodes) { string tagName = item.Name; // Debug.WriteLine(tagName); switch (tagName) { case "userData": tempBasicData = new UserData(); break; case "commandBarData": tempBasicData = new CommandBarData(); break; case "state": tempBasicData = new StateData(); break; case "itemData": tempBasicData = new ItemData(); break; case "dialog": tempBasicData = new DialogData(); break; case "viewTemplate": tempBasicData = new ViewTemplate(); break; case "dockerData": tempBasicData = new DockerData(); break; case "container": tempBasicData = new ContainerData(); break; case "frame": tempBasicData = new FrameData(); break; default: tempBasicData = new OtherData(); break; } if (tempBasicData != null && parentBasicData != null) { tempBasicData.TagName = tagName; tempBasicData.SetXmlChildreID(index); tempBasicData.SetXmlChildreParentID(parentBasicData.XmlChildreID); tempBasicData.Parent = parentBasicData; index++; try { if (item.Attributes != null) { foreach (XmlAttribute att in item.Attributes) { if (att.Name == "guid") { tempBasicData.Guid = att.Value; //break; } if (att.Name == "guidRef") { tempBasicData.GuidRef = att.Value; //break; } tempBasicData.Attributes.Add(new DataClass.Attribute(att.Name, att.Value)); } } } catch (Exception) { throw new Exception("Attribute load failed in tag \"" + tagName + "\""); } tempBasicData.SetTreeLevel(parentBasicData.TreeLevel); parentBasicData.Add(tempBasicData); if (item.ChildNodes.Count > 0) { loadXmlNodes(tempBasicData, item); } } } }