PBDOM_CHARACTERDATA:
GetOwnerDocumentObject method
Description
The GetOwnerDocumentObject method
returns the owning PBDOM_DOCUMENT of the current PBDOM_CHARACTERDATA.
Syntax
1 |
<span>pbdom_chardata_name</span>.GetOwnerDocumentObject(<span></span>) |
Argument |
Description |
---|---|
pbdom_chardata_name |
The name of a PBDOM_CHARACTERDATA |
Return Values
PBDOM_OBJECT.
Throws
EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE – If
this PBDOM_CHARACTERDATA is not associated with a derived PBDOM_CHARACTERDATA
class.
Examples
This example creates a PBDOM_DOCUMENT based
on the following DOM tree:
1 |
<abc><br>   <data>Data</data><br></abc> |
The PowerScript code obtains the root element, uses it to
obtain the child element, and then obtains an array of the child
element’s own children. This array has a single item, the
PBDOM_TEXT object with the text Data. The array can be
cast to a PBDOM_CHARACTERDATA object because it does not
contain any objects that are not derived from PBDOM_CHARACTERDATA,
The call to GetOwnerDocumentObject returns
a PBDOM_OBJECT, which is stored in a PBDOM_DOCUMENT
called pbdom_owner_doc. The
call to Equals tests whether the owner document
of the “Data” PBDOM_TEXT and the main
document, referenced using pbdom_doc,
refer to the same document.
1 |
PBDOM_Builder         pbdombuilder_new<br>pbdom_document        pbdom_doc<br>pbdom_document        pbdom_owner_doc<br>pbdom_element         pbdom_elem<br>PBDOM_CHARACTERDATA   pbdom_chardata<br>PBDOM_OBJECT          pbdom_obj_array[]<br>string strXML = "<abc><data>Data</data></abc>"<br> <br>TRY<br>   pbdombuilder_new = Create PBDOM_Builder<br>   pbdom_doc = pbdombuilder_new.BuildFromString (strXML)<br> <br>   pbdom_elem = pbdom_doc.GetRootElement(). &<br>      GetChildElement("data")<br>   pbdom_elem.GetContent(pbdom_obj_array)<br> <br>   pbdom_chardata = pbdom_obj_array[1]<br> <br>   pbdom_owner_doc = &<br>      pbdom_chardata.GetOwnerDocumentObject()<br> <br>   if (pbdom_doc.Equals(pbdom_owner_doc)) then<br>      MessageBox ("Equals", &<br>         "pbdom_doc Equals pbdom_owner_doc")<br>   else<br>      MessageBox ("Equals", &<br>         "pbdom_doc Not Equals pbdom_owner_doc")<br>   end if<br> <br>   Destroy pbdombuilder_new<br> <br>CATCH (PBDOM_Exception except)<br>   MessageBox ("Exception Occurred", except.Text)<br>END TRY |
This example creates a PBDOM_DOCUMENT based
on the same DOM tree as example 1. It creates a PBDOM_TEXT,
stores it in the PBDOM_CHARACTERDATA variable pbdom_chardata,
and assigns it some text. Objects created in this way are standalone
objects—they have no owner document or parent. Calling GetOwnerDocumentObject on pbdom_chardata returns null.
The code then adds pbdom_chardata as
a child to the data element. This implicitly imports pbdom_chardata into
the original document. pbdom_chardata now
has an owner document and a parent (the data element). Calling GetOwnerDocumentObject on pbdom_chardata returns
the original document. When the returned PBDOM_DOCUMENT
has been assigned into pbdom_owner_doc,
a call to Equals to compare pbdom_doc with pbdom_owner_doc returns
true:
1 |
PBDOM_Builder          pbdombuilder_new<br>pbdom_document         pbdom_doc<br>pbdom_document         pbdom_owner_doc<br>PBDOM_CHARACTERDATA    pbdom_chardata<br>string strXML = "<abc><data>Data</data></abc>"<br> <br>TRY<br>   pbdombuilder_new = Create PBDOM_Builder<br>   pbdom_doc = pbdombuilder_new.BuildFromString (strXML)<br> <br>   pbdom_chardata = Create PBDOM_TEXT<br>   pbdom_chardata.SetText(" Some Text")<br> <br>   if (IsValid (pbdom_chardata.GetOwnerDocumentObject())) then<br>      MessageBox ("Owner Document", &<br>         "PBDOM_TEXT (~'Some Text~') has an owner document.")<br>   else<br>     MessageBox ("Owner Document", &<br>         "PBDOM_TEXT (~'Some Text~') has NO owner document.")   <br>   end if<br> <br>   pbdom_doc.GetRootElement().GetChildElement("data"). &<br>      AddContent(pbdom_chardata)<br> <br>   pbdom_owner_doc = pbdom_chardata.GetOwnerDocumentObject()<br> <br>   if (pbdom_doc.Equals(pbdom_owner_doc)) then<br>      MessageBox ("Equals", "pbdom_doc Equals pbdom_owner_doc")<br>   else<br>     MessageBox ("Equals", "pbdom_doc Not Equals pbdom_owner_doc")<br>   end if<br> <br>   Destroy pbdombuilder_new<br>   Destroy pbdom_chardata<br> <br>CATCH (PBDOM_Exception except)<br>   MessageBox ("Exception Occurred", except.Text)<br>END TRY |
Usage
If there is no owning PBDOM_DOCUMENT, null is
returned.