The PBDOM_TEXT class derives from PBDOM_CHARACTERDATA and represents a DOM text node in an XML document.
The PBDOM_TEXT class has no methods that are not inherited from PBDOM_OBJECT or PBDOM_CHARACTERDATA.
PBDOM_TEXT objects are commonly used to represent the textual content of a PBDOM_ELEMENT or a PBDOM_ATTRIBUTE. Although PBDOM_TEXT objects are not delimited by angle brackets, they are objects and do not form the value of a parent PBDOM_ELEMENT.
A PBDOM_TEXT object represented in graphical form in a PBDOM tree is a leaf node and contains no child objects. For example, Figure 14-4 represents the following PBDOM_ELEMENT:
<parent_element>some text</parent_element>
Figure 14-4: PBDOM_TEXT parent-child relationship
The arrow indicates a parent-child relationship.
When an XML document is first parsed, if there is no markup inside an element's content, the text within the element is represented as a single PBDOM_TEXT object. This PBDOM_TEXT object is the only child of the element. If there is markup, it is parsed into a list of PBDOM_ELEMENT objects and PBDOM_TEXT objects that form the list of children of the element.
For example, parsing the following XML produces one PBDOM_ELEMENT that
represents <element_1>
and
one PBDOM_TEXT that represents the textual content Some
Text
:
<root> <element_1>Some Text</element_1> </root>
The <element_1>
PBDOM_ELEMENT
has the PBDOM_TEXT object as its only child.
Consider this document:
<root> <element_1> Some Text <element_1_1>Sub Element Text</element_1_1> More Text <element_1_2/> Yet More Text </element_1> </root>
Parsing this XML produces a PBDOM_ELEMENT that represents <element_1>
and
its five children:
A PBDOM_TEXT representing Some
Text
A PBDOM_ELEMENT representing <element_1_1/>
A PBDOM_TEXT representing More
Text
A PBDOM_ELEMENT representing <element_1_2/>
A PBDOM_TEXT representing Yet
More Text
You can create adjacent PBDOM_TEXT objects that represent the contents of a given element without any intervening markup. For example, suppose you start with this document:
<root> <element_1>Some Text</element_1> </root>
Calling AddContent("More Text")
on
the element_1 PBDOM_ELEMENT produces
the following result:
<root> <element_1>Some TextMore Text</element_1> </root>
There are now two PBDOM_TEXT objects representing "Some Text" and "More Text" that are adjacent to each other. There is nothing between them, and there is no way to represent the separation between them.
The separation of adjacent PBDOM_TEXT objects does not usually persist between DOM editing sessions. When the document produced by adding "More Text" shown in the preceding example is reopened and reparsed, only one PBDOM_TEXT object represents "Some TextMore Text".