public static XmlResourceFile.Node ReadNode(XPathNavigator nav) { var node = new XmlResourceFile.Node(); node.Name = nav.Name; node.Value = nav.Value; if (nav.MoveToFirstAttribute() == true) { node.Attributes = new List <XmlResourceFile.Attribute>(); do { node.Attributes.Add(new XmlResourceFile.Attribute() { Name = nav.Name, Value = nav.Value, }); }while (nav.MoveToNextAttribute() == true); nav.MoveToParent(); } var children = nav.SelectChildren(XPathNodeType.Element); if (children.Count > 0) { node.Children = new List <XmlResourceFile.Node>(); while (children.MoveNext() == true) { node.Children.Add(ReadNode(children.Current)); } } return(node); }
public static XmlResourceFile.Node ReadNode(XPathNavigator nav) { var node = new XmlResourceFile.Node { Name = nav.Name }; if (nav.MoveToFirstAttribute() == true) { node.Attributes = new List <XmlResourceFile.Attribute>(); do { node.Attributes.Add(new XmlResourceFile.Attribute() { Name = nav.Name, Value = nav.Value, }); }while (nav.MoveToNextAttribute() == true); nav.MoveToParent(); } var children = nav.SelectChildren(XPathNodeType.Element); if (children.Count > 0) { node.Value = ""; node.Children = new List <XmlResourceFile.Node>(); while (children.MoveNext() == true) { if (children.Current == null) { throw new InvalidOperationException(); } node.Children.Add(ReadNode(children.Current.CreateNavigator())); } } else { node.Value = nav.Value; } return(node); }
public static void WriteNode(XmlWriter writer, XmlResourceFile.Node node) { writer.WriteStartElement(node.Name); foreach (var attribute in node.Attributes) { writer.WriteAttributeString(attribute.Name, attribute.Value); } foreach (var child in node.Children) { WriteNode(writer, child); } if (node.Value != null && node.Value.Length > 0) { writer.WriteValue(node.Value); } writer.WriteEndElement(); }
public static void WriteNode(XmlWriter writer, XmlResourceFile.Node node) { writer.WriteStartElement(node.Name); foreach (var attribute in node.Attributes) { writer.WriteAttributeString(attribute.Name, attribute.Value); } foreach (var child in node.Children) { WriteNode(writer, child); } if (string.IsNullOrEmpty(node.Value) == false) { writer.WriteValue(node.Value); } writer.WriteEndElement(); }