/// <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)); } }
/// <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); } }