示例#1
0
        /// <summary>
        /// Inserts foster parented characters.
        /// </summary>
        ///
        /// <param name="text">
        /// The text.
        /// </param>
        /// <param name="table">
        /// The table.
        /// </param>
        /// <param name="stackParent">
        /// The stack parent.
        /// </param>

        override protected void InsertFosterParentedCharacters(string text, DomObject table, DomObject stackParent)
        {
            IDomObject parent = table.ParentNode;

            if (parent != null)
            {
                // always an element if not null
                IDomObject previousSibling = table.PreviousSibling;
                if (previousSibling != null &&
                    previousSibling.NodeType == NodeType.TEXT_NODE)
                {
                    IDomText lastAsText = (IDomText)previousSibling;
                    lastAsText.AppendNodeValue(text);
                    return;
                }
                parent.InsertBefore(Document.CreateTextNode(text), table);
                return;
            }
            // fall through

            IDomText lastChild = stackParent.LastChild as IDomText;

            if (lastChild != null)
            {
                lastChild.AppendNodeValue(text);
                return;
            }
            else
            {
                stackParent.AppendChildUnsafe(Document.CreateTextNode(text));
            }
        }
示例#2
0
        /// <summary>
        /// Appends text a node.
        /// </summary>
        ///
        /// <param name="parent">
        /// The parent.
        /// </param>
        /// <param name="text">
        /// The text.
        /// </param>

        override protected void AppendCharacters(DomObject parent, string text)
        {
            IDomText lastChild = parent.LastChild as IDomText;

            if (lastChild != null)
            {
                lastChild.AppendNodeValue(text);
            }
            else
            {
                lastChild = Document.CreateTextNode(text);
                parent.AppendChildUnsafe(lastChild);
            }
        }