Ejemplo n.º 1
0
        /// <summary>
        /// Writes out a start tag of the element and all the attributes of the element.
        /// </summary>
        /// <param name="elementObject">The OpenXmlElement object to be writen.</param>
        public override void WriteStartElement(OpenXmlElement elementObject)
        {
            if (elementObject == null)
            {
                throw new ArgumentNullException("elementObject");
            }

            if (elementObject is OpenXmlMiscNode)
            {
                throw new ArgumentOutOfRangeException("elementObject");
            }

            this.ThrowIfObjectDisposed();

            this._xmlWriter.WriteStartElement(elementObject.Prefix, elementObject.LocalName, elementObject.NamespaceUri);

            if (elementObject.HasAttributes)
            {
                // write attributes
                foreach (OpenXmlAttribute attribute in elementObject.GetAttributes())
                {
                    this._xmlWriter.WriteAttributeString(attribute.Prefix, attribute.LocalName, attribute.NamespaceUri, attribute.Value);
                }
            }

            if (IsOpenXmlLeafTextElement(elementObject))
            {
                this._isLeafTextElementStart = true;
            }
            else
            {
                this._isLeafTextElementStart = false;
            }
        }