Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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();
        }