Ejemplo n.º 1
0
        internal void WritePreservedAttributes(XmlAttributePreservingWriter writer, XmlAttributeCollection attributes)
        {
            string oldNewLineString = null;

            if (_attributeNewLineString != null)
            {
                oldNewLineString = writer.SetAttributeNewLineString(_attributeNewLineString);
            }

            try
            {
                foreach (string attributeName in _orderedAttributes)
                {
                    XmlAttribute attr = attributes[attributeName];
                    if (attr != null)
                    {
                        if (_leadingSpaces.ContainsKey(attributeName))
                        {
                            writer.WriteAttributeWhitespace(_leadingSpaces[attributeName]);
                        }

                        attr.WriteTo(writer);
                    }
                }

                if (_leadingSpaces.ContainsKey(string.Empty))
                {
                    writer.WriteAttributeTrailingWhitespace(_leadingSpaces[string.Empty]);
                }
            }
            finally
            {
                if (oldNewLineString != null)
                {
                    writer.SetAttributeNewLineString(oldNewLineString);
                }
            }
        }