private static void IterateXml(XmlNode xmlElement, IBNode node) { foreach (XmlNode elem in xmlElement.ChildNodes) { IBNode childNode = new IBNode(elem.Name, elem.Value, node); //value .ChildNodes[0] if (elem.HasChildNodes) { IterateXml(elem, childNode); } } }
public static IBNode ConvertXml2IBF(string xmlText) { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlText); IBNode node = new IBNode(doc.ChildNodes[0].Name, doc.ChildNodes[0].Attributes["name"]?.Value, null); IterateInnerXml(doc.ChildNodes[0].InnerXml, node); return(node); }
public IBNode(string name, object value, IBNode parentNode) { if (string.IsNullOrEmpty(name)) { throw new Exception("Node name can not be null or empty"); } this.ParentNode = parentNode; this.Name = name; this.Value = value; if (parentNode != null) { parentNode.AddChildNode(this); } ChildNodes = new List <IBNode>(); }
private static void IterateInnerXml(string xmlText, IBNode parentNode) { if (string.IsNullOrEmpty(xmlText)) { return; } XmlDocument doc = XmlDocumentConverter(xmlText); foreach (XmlNode elem in doc.ChildNodes) { IBNode node = new IBNode(elem.Name, elem.Attributes["name"].Value, parentNode); foreach (XmlNode elem2 in elem.ChildNodes) { IterateInnerXml(elem2.OuterXml, node); } } }
public void AddChildNode(IBNode childNode) { ChildNodes.Add(childNode); }