ILIAS
Release_3_10_x_branch Revision 61812
|
domxml wrapper class This class provides some more complex methods to access a domDocument via DOMXML. More...
Public Member Functions | |
ilDOMXML () | |
Constructor init domxml handler You may (a) initiate this class with an existing domDocument OR (b) create a new domDocument depending on the parameters you pass to this constructor: | |
_ilDOMXML () | |
initNewDocument ($a_version="", $a_encoding="", $a_charset="") | |
init new domDocument private method. | |
createRootElement ($a_element) | |
wrapper for crating a root element this methods avoids creating multiple elements on root level. | |
loadDocument ($a_filename, $a_filepath, $a_validate=false) | |
loads a xml-document from file and build a DOM representation in $this->doc. | |
trim ($a_node) | |
traverse domDocument and removes all useless nodes that are created due to whitespaces in the source file | |
trimDocument ($a_node= '') | |
wrapper for $this->trim defaults to $this->doc if no node given and returns cleaned dom document | |
transform ($node, $left2=-1, $lvl=0) | |
traverse the domDocument and build a tree which contains additional information about domDocument's structure: $arr[id] = array( content (str) = node_value (only text nodes have a value) name (str) = tagname or entityname type (int) = element_type_id depth (int) = depth of node in tree parent (int) = id of parent node first (int) = id of first child node prev (int) = id of previous sibling node next (int) = id of next sibling node left (int) = left value (for traversing tree in relational DB) right (int) = right value (for traversing tree in relational DB)) The key is the internal id of the domDocument. | |
buildTree ($a_node="") | |
wrapper for $this->transform defaults to $this->doc if no node given and returns $this->tree | |
dumpDocument ($a_stdout=-1, $a_compress=false, $a_format=false) | |
wrapper for dump_mem() and dump_file() converts the entire DOM tree in $this->doc to a string optional: writes the string to a file if path & filename is specified. | |
getTextFromElement ($a_element) | |
fetch all text parts from an element even when the text is interupted by another element example: <paragraph>This text ispart of the same element. | |
isLeafElement ($a_node, $a_elementname, $a_num=0) | |
find leaf elements. | |
getElementsByTagname ($a_elementname, $a_node="") | |
wrapper for get_elements_by_tagname searches domDocument for specified elementname, starting at $a_node. | |
appendReferenceNodeForLO ($a_node, $a_lo_id, $a_lm_id, $a_prev_sibling) | |
creates an element entry for the removed LearningObject: <LO id=[obj_id of child LO] /> | |
appendChild ($a_node) | |
wrapper for append_child Main purpose of this method is to simplify access of DOM-Functions. | |
getRoot () | |
wrapper for document_element Main purpose of this method is to simplify access of DOM-Functions. | |
createElement ($a_node) | |
wrapper for create_element Main purpose of this method is to simplify access of DOM-Functions. | |
addElement ($a_parent, $a_node) | |
createText ($a_text) | |
wrapper for create_element Main purpose of this method is to simplify access of DOM-Functions. | |
createNode ($a_parent, $a_elementname, $a_attr_list=NULL, $a_text=NULL) | |
creates a complete node of type element with a text_node within the element and attributes The node is append to domDocument under the given parent_node | |
getElementId ($a_node) | |
get internal reference id of a domNode | |
getElementName ($a_node) | |
get node_name | |
setEncoding ($a_encode, $a_overwrite=false) | |
set encoding of domDocument | |
getEncoding () | |
get encoding of domDocument | |
setCharset ($a_charset, $a_overwrite=false) | |
set charset of domDocument | |
getCharset () | |
get charset of domDocument | |
getInfo () | |
fetch Title & Description from MetaData-Section of domDocument | |
getReferences () | |
get all LO references in Learning Object |
Data Fields | |
$doc | |
$tree | |
$error |
domxml wrapper class This class provides some more complex methods to access a domDocument via DOMXML.
For basic tasks when building xml-documents please use the standard functions from the domxml extension of PHP
Definition at line 35 of file class.ilDOMXML.php.
ilDOMXML::_ilDOMXML | ( | ) |
Definition at line 93 of file class.ilDOMXML.php.
ilDOMXML::addElement | ( | $a_parent, | |
$a_node | |||
) |
Definition at line 545 of file class.ilDOMXML.php.
ilDOMXML::appendChild | ( | $a_node | ) |
wrapper for append_child Main purpose of this method is to simplify access of DOM-Functions.
object | domNode |
Definition at line 515 of file class.ilDOMXML.php.
Referenced by createRootElement().
ilDOMXML::appendReferenceNodeForLO | ( | $a_node, | |
$a_lo_id, | |||
$a_lm_id, | |||
$a_prev_sibling | |||
) |
creates an element entry for the removed LearningObject: <LO id=[obj_id of child LO] />
object | domNode |
integer | object_id of removed LO public |
TODO: Moved this method to class where it fits better (LearningObject? xml2sql?)
Definition at line 490 of file class.ilDOMXML.php.
References createElement().
ilDOMXML::buildTree | ( | $a_node = "" | ) |
wrapper for $this->transform defaults to $this->doc if no node given and returns $this->tree
object | domNode |
Definition at line 364 of file class.ilDOMXML.php.
References $doc, $tree, and transform().
ilDOMXML::createElement | ( | $a_node | ) |
wrapper for create_element Main purpose of this method is to simplify access of DOM-Functions.
object | domNode |
Definition at line 540 of file class.ilDOMXML.php.
Referenced by appendReferenceNodeForLO(), createNode(), and createRootElement().
ilDOMXML::createNode | ( | $a_parent, | |
$a_elementname, | |||
$a_attr_list = NULL , |
|||
$a_text = NULL |
|||
) |
creates a complete node of type element with a text_node within the element and attributes The node is append to domDocument under the given parent_node
object | domNode the place where the new created node will be inserted |
string | name of the element |
array | list of attributes (optional). syntax: $arr["attr_name"] = attr_value |
string | if any text is given a text_node will be created (optional). |
Definition at line 578 of file class.ilDOMXML.php.
References createElement().
ilDOMXML::createRootElement | ( | $a_element | ) |
wrapper for crating a root element this methods avoids creating multiple elements on root level.
This is necessary since PHP crashes if you try to create another element on top level of domDocument :-(
string | taggname of root element public |
Definition at line 151 of file class.ilDOMXML.php.
References appendChild(), createElement(), and getRoot().
ilDOMXML::createText | ( | $a_text | ) |
wrapper for create_element Main purpose of this method is to simplify access of DOM-Functions.
object | domNode |
Definition at line 561 of file class.ilDOMXML.php.
ilDOMXML::dumpDocument | ( | $a_stdout = -1 , |
|
$a_compress = false , |
|||
$a_format = false |
|||
) |
wrapper for dump_mem() and dump_file() converts the entire DOM tree in $this->doc to a string optional: writes the string to a file if path & filename is specified.
Otherwise only the string is returned.
string | path/filename |
boolean | compress XML content |
boolean | format XML content with whitespaces |
Definition at line 387 of file class.ilDOMXML.php.
ilDOMXML::getCharset | ( | ) |
get charset of domDocument
Definition at line 680 of file class.ilDOMXML.php.
ilDOMXML::getElementId | ( | $a_node | ) |
get internal reference id of a domNode
object | domNode |
Definition at line 609 of file class.ilDOMXML.php.
ilDOMXML::getElementName | ( | $a_node | ) |
get node_name
object | domNode |
Definition at line 622 of file class.ilDOMXML.php.
ilDOMXML::getElementsByTagname | ( | $a_elementname, | |
$a_node = "" |
|||
) |
wrapper for get_elements_by_tagname searches domDocument for specified elementname, starting at $a_node.
If no node was given searches the entire domDocument in $this->doc returns an array of all nodes found
string | tagname of element |
object | domNode where to start searching (optional) |
Definition at line 467 of file class.ilDOMXML.php.
References $doc.
Referenced by getInfo(), and getReferences().
ilDOMXML::getEncoding | ( | ) |
get encoding of domDocument
Definition at line 651 of file class.ilDOMXML.php.
ilDOMXML::getInfo | ( | ) |
fetch Title & Description from MetaData-Section of domDocument
Definition at line 691 of file class.ilDOMXML.php.
References getElementsByTagname().
ilDOMXML::getReferences | ( | ) |
get all LO references in Learning Object
Definition at line 732 of file class.ilDOMXML.php.
References getElementsByTagname().
ilDOMXML::getRoot | ( | ) |
wrapper for document_element Main purpose of this method is to simplify access of DOM-Functions.
Definition at line 527 of file class.ilDOMXML.php.
Referenced by createRootElement().
ilDOMXML::getTextFromElement | ( | $a_element | ) |
fetch all text parts from an element even when the text is interupted by another element example: <paragraph>This text ispart of the same element.
</paragraph> This method returns: This text is part of the same element.
object | dom node of type ELEMENT (id:1) |
Definition at line 408 of file class.ilDOMXML.php.
References trim().
ilDOMXML::ilDOMXML | ( | ) |
Constructor init domxml handler You may (a) initiate this class with an existing domDocument OR (b) create a new domDocument depending on the parameters you pass to this constructor:
(a) init existing domDocument
object | domDocument |
(b) init new domDocument
string | xml version (optional) |
string | encoding charset (optional) |
string | charset (optional) public |
Definition at line 78 of file class.ilDOMXML.php.
References initNewDocument().
ilDOMXML::initNewDocument | ( | $a_version = "" , |
|
$a_encoding = "" , |
|||
$a_charset = "" |
|||
) |
init new domDocument private method.
Please use constructor to init a new domDocument
string | xml version (default: 1.0) |
string | encoding charset (default: UTF-8) |
string | charset (default: UTF-8) private |
Definition at line 112 of file class.ilDOMXML.php.
References domxml_open_mem(), setCharset(), and setEncoding().
Referenced by ilDOMXML().
ilDOMXML::isLeafElement | ( | $a_node, | |
$a_elementname, | |||
$a_num = 0 |
|||
) |
find leaf elements.
In this context leaf elements are defined as elements that don't contain other elements of the same type!
object | domNode of type ELEMENT |
string | tagname your are looking for |
integer | auxilliary variable to avoid counting start node itself. must set to 1 for the first function call |
Definition at line 435 of file class.ilDOMXML.php.
ilDOMXML::loadDocument | ( | $a_filename, | |
$a_filepath, | |||
$a_validate = false |
|||
) |
loads a xml-document from file and build a DOM representation in $this->doc.
The xml-document is parsed automatically. You may also validate it against a DTD by setting the 3rd parameter to 'true'
string | filename |
string | filepath |
boolean | set mode: parsing (false,default) or validating (true) public |
Definition at line 172 of file class.ilDOMXML.php.
References $doc, $error, domxml_open_file(), exit, setCharset(), and setEncoding().
ilDOMXML::setCharset | ( | $a_charset, | |
$a_overwrite = false |
|||
) |
set charset of domDocument
string | charset |
boolean | overwrite existing charset (true) or not (false) |
Definition at line 664 of file class.ilDOMXML.php.
Referenced by initNewDocument(), and loadDocument().
ilDOMXML::setEncoding | ( | $a_encode, | |
$a_overwrite = false |
|||
) |
set encoding of domDocument
string | encoding charset |
boolean | overwrite existing encoding charset (true) or not (false) |
Definition at line 635 of file class.ilDOMXML.php.
Referenced by initNewDocument(), and loadDocument().
ilDOMXML::transform | ( | $node, | |
$left2 = -1 , |
|||
$lvl = 0 |
|||
) |
traverse the domDocument and build a tree which contains additional information about domDocument's structure: $arr[id] = array( content (str) = node_value (only text nodes have a value) name (str) = tagname or entityname type (int) = element_type_id depth (int) = depth of node in tree parent (int) = id of parent node first (int) = id of first child node prev (int) = id of previous sibling node next (int) = id of next sibling node left (int) = left value (for traversing tree in relational DB) right (int) = right value (for traversing tree in relational DB)) The key is the internal id of the domDocument.
Also the ids of other nodes are internal references. The array is written to $this->tree. Use $this->buildTree() to return the variable.
object | domNode |
integer | left value (optional; only needed for recursion)) |
integer | depth of node in tree (optional, default is 0) private |
Definition at line 266 of file class.ilDOMXML.php.
Referenced by buildTree().
ilDOMXML::trim | ( | $a_node | ) |
traverse domDocument and removes all useless nodes that are created due to whitespaces in the source file
object | domNode private |
Definition at line 210 of file class.ilDOMXML.php.
Referenced by getTextFromElement(), transform(), and trimDocument().
ilDOMXML::trimDocument | ( | $a_node = '' | ) |
wrapper for $this->trim defaults to $this->doc if no node given and returns cleaned dom document
object | domNode (optional) public |
Definition at line 235 of file class.ilDOMXML.php.
ilDOMXML::$doc |
Definition at line 43 of file class.ilDOMXML.php.
Referenced by buildTree(), getElementsByTagname(), loadDocument(), and trimDocument().
ilDOMXML::$error |
Definition at line 60 of file class.ilDOMXML.php.
Referenced by loadDocument().
ilDOMXML::$tree |
Definition at line 51 of file class.ilDOMXML.php.
Referenced by buildTree().