AddContent

Description

Allows you to add a new PBDOM_OBJECT into the current PBDOM_DOCUMENT object.

Syntax

pbdom_document_name.AddContent(pbdom_object pbdom_object_ref)

Argument

Description

pbdom_document_name

The name of a PBDOM_DOCUMENT object

pbdom_object_ref

The PBDOM_OBJECT to add


Return value

PBDOM_OBJECT. The return value is the newly modified PBDOM_DOCUMENT object returned as a PBDOM_OBJECT.

Throws

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT -- The input PBDOM_OBJECT is nameable, but it currently has no name.

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE -- The input PBDOM_OBJECT object is not associated with a derived PBDOM_OBJECT class object.

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT -- Adding the input PBDOM_OBJECT is inappropriate. See description section below on the valid PBDOM_OBJECTs that can be added to a PBDOM_DOCUMENT object.

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT -- If the PBDOM_OBJECT to be added already has a parent PBDOM_OBJECT.

EXCEPTION_MULTIPLE_ROOT_ELEMENT -- If a PBDOM_ELEMENT is to be added and this document already has a root element.

EXCEPTION_MULTIPLE_DOCTYPE -- If a PBDOM_DOCTYPE is to be added and this document already has a DOCTYPE.

Examples

The document pbdom_doc1 is created with three elements: pbdom_elem_1, pbdom_elem_2, and pbdom_elem_3. pbdom_elem_2 and pbdom_elem_3 are set as children of pbdom_element_1. pbdom_doc1.GetRootElement().Detach()detaches the root element from pbdom_doc1. pbdom_elem_1 is added as a child of pbdom_doc1 with pbdom_doc1.AddContent(pbdom_elem_1).

TRY
   PBDOM_ELEMENT pbdom_elem_1
   PBDOM_ELEMENT pbdom_elem_2
   PBDOM_ELEMENT pbdom_elem_3
   PBDOM_DOCUMENT pbdom_doc1

   pbdom_doc1 = Create PBDOM_DOCUMENT
   pbdom_elem_1 = Create PBDOM_ELEMENT
   pbdom_elem_2 = Create PBDOM_ELEMENT
   pbdom_elem_3 = Create PBDOM_ELEMENT

   pbdom_elem_1.SetName("pbdom_elem_1")
   pbdom_elem_2.SetName("pbdom_elem_2")
   pbdom_elem_3.SetName("pbdom_elem_3")

   pbdom_elem_1.AddContent(pbdom_elem_2)
   pbdom_elem_1.AddContent(pbdom_elem_3)

   pbdom_doc1.NewDocument("", "", "Root_Element", &
      "", "")
   pbdom_doc1.GetRootElement().Detach()
   pbdom_doc1.AddContent(pbdom_elem_1)
CATCH (pbdom_exception ex)
   MessageBox("Exception", ex.getMessage())
END TRY

The original root element <Root_Element> has been detached and replaced by <pbdom_elem_1>. The document is transformed to:

<!DOCTYPE Root_Element>
<pbdom_elem_1>
   <pbdom_elem_2/>
   <pbdom_elem_3/>
</pbdom_elem_1>

If the following root element detachment statement is omitted, an exception is thrown:

pbdom_doc1.GetRootElement().Detach()

Usage

The new PBDOM_OBJECT becomes a child PBDOM_OBJECT of the current PBCOM_DOCUMENT. The following table lists the PBDOM_OBJECTs that can be added to a PBDOM_DOCUMENT object and the restrictions for their addition.

PBDOM_OBJECT

Restrictions

PBDOM_ELEMENT

Allowed to be added only if this document currently does not contain any root element. Otherwise the exception EXCEPTION_MULTIPLE_ROOT_ELEMENT is thrown.

The PBDOM_ELEMENT to be added must not already have a parent PBDOM_OBJECT. If it does, the exception EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT is thrown.

PBDOM_COMMENT

Any number of PBDOM_COMMENT objects can be added to a document.

The only restriction is that the PBDOM_COMMENT must not already have a parent. If so, the exception EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT is thrown.

PBDOM_PROCESSINGINSTRUCTION

Any number of PBDOM_PROCESSINGINSTRUCTION objects can be added to a document.

The only restriction is that the PBDOM_PROCESSINGINSTRUCTION must not already have a parent. If so, the exception EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT is thrown.

PBDOM_DOCTYPE

Allowed to be added only if this document currently does not contain any DOCTYPE node. Otherwise the exception EXCEPTION_MULTIPLE_DOCTYPE is thrown.

The PBDOM_DOCTYPE to be added must not already have a parent PBDOM_OBJECT. If it does, the exception EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT is thrown.


See also

GetContent

InsertContent

RemoveContent

SetContent