steinm Fri Apr 12 07:20:15 2002 EDT
Modified files:
/phpdoc/en/functions domxml.xml
Log:
- even more documentation
(most functions should be documented now)
Index: phpdoc/en/functions/domxml.xml
diff -u phpdoc/en/functions/domxml.xml:1.38 phpdoc/en/functions/domxml.xml:1.39
--- phpdoc/en/functions/domxml.xml:1.38 Thu Apr 11 11:46:57 2002
+++ phpdoc/en/functions/domxml.xml Fri Apr 12 07:20:13 2002
@@ -1,40 +1,146 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.38 $ -->
+<!-- $Revision: 1.39 $ -->
<reference id="ref.domxml">
<title>DOM XML functions</title>
<titleabbrev>DOM XML</titleabbrev>
<partintro>
-
<sect1 id="domxml-intro">
<title>Introduction</title>
&warn.experimental;
<para>
- This documentation is not finished yet. Don't start to translate it
- or use it as a programming reference ([EMAIL PROTECTED]).
+ The domxml extension has been overhauled in PHP Version 4.3.0 in favour
+ of a better compliance of the DOM standard. The extension still contains
+ many old functions, but they should not be used anymore. Especially those
+ non object oriented functions should be avoided.
</para>
<para>
The extension allows you to operate on an XML document with the DOM API.
- It also provides a function <function>xmltree</function> to turn the
+ It also provides a function <function>domxml_xmltree</function> to turn the
complete XML document into a tree of PHP objects. Currently this
tree should be considered read-only - you can modify it but this
- would not make any sense since <function>dumpmem</function> cannot be
+ would not make any sense since <function>DomDocument_dump_mem</function>
+ cannot be
applied to it. Therefore, if you want to read an XML file and write
a modified version use the <function>DomDocument_create_element</function>,
<function>DomDocument_create_text</function>,
<function>set_attribute</function>, etc. and finally
- <function>dumpmem</function> functions.
+ <function>DomDocument_dump_mem</function> functions.
</para>
</sect1>
<sect1 id="domxml-requirements">
<title>Requirements</title>
<para>
- These functions are only available if PHP was configured with
+ This extension is only available if PHP was configured with
<option role="configure">--with-dom=[DIR]</option>, using the
<ulink url="&url.domxml;">GNOME xml library</ulink>.
You will need at least libxml-2.2.7
- These functions have been added in PHP 4.
+ </para>
+ </sect1>
+
+ <sect1 id="domxml-deprecated">
+ <title>Deprecated functions</title>
+ <para>
+ <table>
+ <title>Deprecated functions and its replacements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Old function</entry>
+ <entry>New function</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>xmldoc</entry>
+ <entry><function>domxml_open_mem</function></entry>
+ </row>
+ <row>
+ <entry>xmldocfiel</entry>
+ <entry><function>domxml_open_file</function></entry>
+ </row>
+ <row>
+ <entry>domxml_new_xmldoc</entry>
+ <entry><function>domxml_new_doc</function></entry>
+ </row>
+ <row>
+ <entry>domxml_dump_mem</entry>
+ <entry><function>DomDocument_dump_mem</function></entry>
+ </row>
+ <row>
+ <entry>domxml_dump_mem_file</entry>
+ <entry><function>DomDocument_dump_file</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_dump_mem_file</entry>
+ <entry><function>DomDocument_dump_file</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_add_root</entry>
+ <entry><function>DomDocument_create_element</function> followed by
+ <function>DomNode_append_child</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_dtd</entry>
+ <entry><function>DomDocument_doctype</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_root</entry>
+ <entry><function>DomDocument_document_element</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_children</entry>
+ <entry><function>DomNode_child_nodes</function></entry>
+ </row>
+ <row>
+ <entry>DomDocument_imported_node</entry>
+ <entry>No replacement.</entry>
+ </row>
+ <row>
+ <entry>DomNode_add_child</entry>
+ <entry>Create a new node with e.g.
+ <function>DomDocument_create_element</function> und add it with
+ <function>DomNode_append_child</function>.
+ </entry>
+ </row>
+ <row>
+ <entry>DomNode_children</entry>
+ <entry><function>DomNode_child_nodes</function></entry>
+ </row>
+ <row>
+ <entry>DomNode_parent</entry>
+ <entry><function>DomNode_parent_node</function></entry>
+ </row>
+ <row>
+ <entry>DomNode_new_child</entry>
+ <entry>Create a new node with e.g.
+ <function>DomDocument_create_element</function> und add it with
+ <function>DomNode_append_child</function>.
+ </entry>
+ </row>
+ <row>
+ <entry>DomNode_set_content</entry>
+ <entry>Create a new node with e.g.
+ <function>DomDocument_create_text_node</function> und add it with
+ <function>DomNode_append_child</function>.
+ </entry>
+ </row>
+ <row>
+ <entry>DomNode_get_content</entry>
+ <entry>Content is just a text node and can be accessed with
+ <function>DomNode_child_nodes</function>.
+ </entry>
+ </row>
+ <row>
+ <entry>DomNode_set_content</entry>
+ <entry>Content is just a text node and can be added with
+ <function>DomNode_append_child</function>.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</para>
</sect1>
@@ -207,11 +313,11 @@
<entry>DomCData : DomNode</entry>
</row>
<row>
- <entry>DomParser</entry>
- <entry></entry>
+ <entry>Parser</entry>
+ <entry>Currently still called DomParser</entry>
</row>
<row>
- <entry>XPathContext<function>></function></entry>
+ <entry>XPathContext</entry>
<entry></entry>
</row>
</tbody>
@@ -227,14 +333,14 @@
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
<row>
<entry>doctype</entry>
<entry><function>DomDocument_doctype</function></entry>
- <entry>Returns the document type</entry>
+ <entry></entry>
</row>
<row>
<entry>document_elemnent</entry>
@@ -287,34 +393,34 @@
<entry></entry>
</row>
<row>
- <entry>add_root</entry>
- <entry><function>domxml_add_root</function></entry>
- <entry></entry>
+ <entry>dump_mem</entry>
+ <entry><function>DomDocument_dump_mem</function></entry>
+ <entry>not DOM standard</entry>
</row>
<row>
- <entry>dtd</entry>
- <entry><function>domxml_intdtd</function></entry>
- <entry></entry>
+ <entry>dump_file</entry>
+ <entry><function>DomDocument_dump_file</function></entry>
+ <entry>not DOM standard</entry>
</row>
<row>
- <entry>dumpmem</entry>
- <entry><function>domxml</function></entry>
- <entry></entry>
+ <entry>html_dump_mem</entry>
+ <entry><function>DomDocument_html_dump_mem</function></entry>
+ <entry>not DOM standard</entry>
</row>
<row>
<entry>xpath_init</entry>
<entry>xpath_init</entry>
- <entry></entry>
+ <entry>not DOM standard</entry>
</row>
<row>
<entry>xpath_new_context</entry>
<entry>xpath_new_context</entry>
- <entry></entry>
+ <entry>not DOM standard</entry>
</row>
<row>
<entry>xptr_new_context</entry>
<entry>xptr_new_context</entry>
- <entry></entry>
+ <entry>not DOM standard</entry>
</row>
</tbody>
</tgroup>
@@ -329,7 +435,7 @@
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -385,7 +491,7 @@
<thead>
<row>
<entry>Method name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -446,27 +552,35 @@
<entry></entry>
</row>
<row>
- <entry>new_child</entry>
- <entry>Not in DOM standard</entry>
+ <entry><function>DomNode_clone_node</function></entry>
+ <entry></entry>
</row>
<row>
- <entry>get_attribute</entry>
+ <entry><function>DomNode_attributes</function></entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry><function>DomNode_unlink_node</function></entry>
<entry>Not in DOM standard</entry>
</row>
<row>
- <entry>set_attribute</entry>
+ <entry><function>DomNode_replace_node</function></entry>
<entry>Not in DOM standard</entry>
</row>
<row>
- <entry>DomNode_attributes</entry>
- <entry></entry>
+ <entry><function>DomNode_set_content</function></entry>
+ <entry>Not in DOM standard, deprecated</entry>
+ </row>
+ <row>
+ <entry><function>DomNode_get_content</function></entry>
+ <entry>Not in DOM standard, deprecated</entry>
</row>
<row>
- <entry>node</entry>
+ <entry><function>DomNode_dump_node</function></entry>
<entry>Not in DOM standard</entry>
</row>
<row>
- <entry><function>set_content</function></entry>
+ <entry><function>DomNode_is_blank_node</function></entry>
<entry>Not in DOM standard</entry>
</row>
</tbody>
@@ -482,7 +596,7 @@
<row>
<entry>Method name</entry>
<entry></entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -514,7 +628,7 @@
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -535,24 +649,24 @@
<para>
<table>
- <title>DomParser class</title>
+ <title>Parser class</title>
<tgroup cols="3">
<thead>
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
<row>
<entry>add_chunk</entry>
- <entry><function>DomParser_add_chunk</function></entry>
+ <entry><function>Parser_add_chunk</function></entry>
<entry></entry>
</row>
<row>
<entry>end</entry>
- <entry><function>DomParser_end</function></entry>
+ <entry><function>Parser_end</function></entry>
<entry></entry>
</row>
</tbody>
@@ -568,7 +682,7 @@
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -600,7 +714,7 @@
<row>
<entry>Method name</entry>
<entry>Function name</entry>
- <entry>Description</entry>
+ <entry>Remark</entry>
</row>
</thead>
<tbody>
@@ -651,7 +765,10 @@
Many examples in this reference require a xml string. Instead of
repeating this string in any example it will be put into a file
and be included by each example. This include file is shown in the
- following example section.
+ following example section. You could also create an xml document
+ read it with <function>DomDocument_open_file</function>.
+ </para>
+ <para>
<example>
<title>Include file example.inc with xml string</title>
<programlisting role="php">
@@ -686,68 +803,130 @@
</sect1>
</partintro>
- <refentry id="function.xmldoc">
+ <refentry id="function.domxml-open-mem">
<refnamediv>
- <refname>xmldoc</refname>
+ <refname>domxml_open_mem</refname>
<refpurpose>Creates a DOM object of an XML document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>xmldoc</methodname>
- <methodparam><type>string</type><parameter>str</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
+ <methodsynopsis>
+ <type>object</type><methodname>domxml_open_mem</methodname>
+ <methodparam><type>string</type><parameter>str</parameter></methodparam>
+ </methodsynopsis>
<para>
The function parses the XML document in
<parameter>str</parameter> and returns an object of class "Dom
- document", having the properties as listed above.
+ document", having the properties as listed above. This function,
+ <function>domxml_open_file</function> or <function>domxml_new_doc</function>
+ must be called before any other function calls.
+ </para>
+ <para>
+ <example>
+ <title>Opening a xml document in a string</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+include("example.inc");
+
+if(!$dom = domxml_open_mem($xmlstr)) {
+ echo "Error while parsing the document\n";
+ exit;
+}
+
+$root = $dom->document_element();
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ See also <function>domxml_open_file</function>,
+ <function>domxml_new_doc</function>.
</para>
- <simpara>
- See also <function>xmldocfile</function>
- </simpara>
</refsect1>
</refentry>
- <refentry id="function.xmldocfile">
+ <refentry id="function.domxml-open-file">
<refnamediv>
- <refname>xmldocfile</refname>
+ <refname>domxml_open_file</refname>
<refpurpose>Creates a DOM object from XML file</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>xmldocfile</methodname>
- <methodparam><type>string</type><parameter>filename</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
+ <methodsynopsis>
+ <type>object</type><methodname>domxml_open_file</methodname>
+ <methodparam><type>string</type><parameter>filename</parameter></methodparam>
+ </methodsynopsis>
<para>
The function parses the XML document in the file named
<parameter>filename</parameter> and returns an object of class
"Dom document", having the properties as listed above.
The file is accessed read-only.
</para>
- <simpara>
- See also <function>xmldoc</function>
- </simpara>
+ <para>
+ <example>
+ <title>Opening a xml document from a file</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+if(!$dom = domxml_open_file("example.xml")) {
+ echo "Error while parsing the document\n";
+ exit;
+}
+
+$root = $dom->document_element();
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ See also <function>domxml_open_mem</function>,
+ <function>domxml_new_doc</function>.
+ </para>
</refsect1>
</refentry>
- <refentry id="function.xmltree">
+ <refentry id="function.domxml-new-doc">
<refnamediv>
- <refname>xmltree</refname>
+ <refname>domxml_new_doc</refname>
<refpurpose>
- Creates a tree of PHP objects from an XML document
+ Creates new empty XML document
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
- <type>object</type><methodname>xmltree</methodname>
- <methodparam><type>string</type><parameter>str</parameter></methodparam>
+ <type>object</type><methodname>domxml_new_doc</methodname>
+ <methodparam><type>string</type><parameter>version</parameter></methodparam>
</methodsynopsis>
&warn.experimental.func;
<para>
+ Creates a new dom document from scratch and returns it.
+ </para>
+ <para>
+ See also <function>DomDocument_add_root</function>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.domxml-xmltree">
+ <refnamediv>
+ <refname>domxml_xmltree</refname>
+ <refpurpose>
+ Creates a tree of PHP objects from an XML document
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>object</type><methodname>domxml_xmltree</methodname>
+ <methodparam><type>string</type><parameter>str</parameter></methodparam>
+ </methodsynopsis>
+ &warn.experimental.func;
+ <para>
The function parses the XML document in
<parameter>str</parameter> and returns a tree PHP objects as the
parsed document. This function is isolated from the other functions,
@@ -760,6 +939,25 @@
</refsect1>
</refentry>
+ <refentry id='function.domxml-version'>
+ <refnamediv>
+ <refname>domxml_version</refname>
+ <refpurpose>
+ Get XML library version
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>string</type><methodname>domxml_version</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ This function returns the version of the XML library version currently used.
+ </para>
+ </refsect1>
+ </refentry>
+
<!-- Start of class DomDocument -->
<refentry id="function.DomDocument-doctype">
@@ -813,7 +1011,7 @@
<?php
include("example.inc");
-if(!$dom = xmldoc($xmlstr)) {
+if(!$dom = domxml_open_mem($xmlstr)) {
echo "Error while parsing the document\n";
exit;
}
@@ -1092,7 +1290,7 @@
<para>
</para>
<para>
- See also <function>domxml_add_root</function>
+ See also <function>DomDocument_add_root</function>
</para>
</refsect1>
</refentry>
@@ -1112,31 +1310,30 @@
<para>
</para>
<para>
- See also <function>domxml_add_root</function>
+ See also <function>DomDocument_add_root</function>
</para>
</refsect1>
</refentry>
<!-- End of class DomDocument -->
- <refentry id="function.domxml-add-root">
+ <refentry id="function.DomDocument-add-root">
<refnamediv>
- <refname>domxml_add_root</refname>
+ <refname>DomDocument->add_root [deprecated]</refname>
<refpurpose>
- Adds a further root node
+ Adds a root node
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
- <type>resource</type><methodname>domxml_add_root</methodname>
- <methodparam><type>resource</type><parameter>doc</parameter></methodparam>
+ <type>resource</type><methodname>DomDocument->add_root</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
&warn.experimental.func;
<para>
Adds a root element node to a dom document and returns the new node.
- The element name is given in the second parameter.
+ The element name is given in the passed parameter.
</para>
<para>
<example>
@@ -1144,11 +1341,11 @@
<programlisting role="php">
<![CDATA[
<?php
-$doc = new_xmldoc("1.0");
+$doc = domxml_new_doc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "Hier der Titel");
-echo $doc->dumpmem();
+echo htmlentities($doc->dump_mem());
?>
]]>
</programlisting>
@@ -1157,9 +1354,9 @@
</refsect1>
</refentry>
- <refentry id="function.domxml-dumpmem">
+ <refentry id="function.DomDocument-dump-mem">
<refnamediv>
- <refname>domxml_dumpmem</refname>
+ <refname>DomDocument->dump_mem</refname>
<refpurpose>
Dumps the internal XML tree back into a string
</refpurpose>
@@ -1167,271 +1364,177 @@
<refsect1>
<title>Description</title>
<methodsynopsis>
- <type>string</type><methodname>domxml_dumpmem</methodname>
- <methodparam><type>resource</type><parameter>doc</parameter></methodparam>
+ <type>string</type><methodname>DomDocument->dump_mem</methodname>
<methodparam
choice="opt"><type>bool</type><parameter>format</parameter></methodparam>
</methodsynopsis>
&warn.experimental.func;
<para>
Creates an XML document from the dom representation. This function
- usually is called after a building a new dom document from scratch
- as in the example of <function>domxml_add_root</function>. The
- <parameter>format</parameter> specifies whether the output should be neatly
- formatted, or not.
+ usually is called after building a new dom document from scratch
+ as in the example below. The
+ <parameter>format</parameter> specifies whether the output should be
+ neatly formatted, or not.
+ </para>
+ <para>
+ <example>
+ <title>Creating a simple HTML document header</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$doc = domxml_new_doc("1.0");
+$root = $doc->create_element("HTML");
+$root = $doc->append_child($root);
+$head = $doc->create_element("HEAD");
+$head = $root->append_child($head);
+$title = $doc->create_element("TITLE");
+$title = $head->append_child($title);
+$text = $doc->create_text_node("This is the title");
+$text = $title->append_child($text);
+echo "<PRE>";
+echo htmlentities($doc->dump_mem(true));
+echo "</PRE>";
+?>
+]]>
+ </programlisting>
+ </example>
</para>
<note>
<para>
- The second parameter was added in PHP 4.3.0.
+ The first parameter was added in PHP 4.3.0.
</para>
</note>
<para>
- See also <function>domxml_add_root</function>
- </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.domxml-attributes">
- <refnamediv>
- <refname>domxml_attributes</refname>
- <refpurpose>
- Returns an array of attributes of a node
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>array</type><methodname>domxml_attributes</methodname>
- <methodparam><type>resource</type><parameter>node</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
- <para>
- Returns all attributes of a node as array of objects of type
- "dom attribute".
- </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.domxml-get-attribute">
- <refnamediv>
- <refname>domxml_get_attribute</refname>
- <refpurpose>
- Returns a certain attribute of a node
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>domxml_get_attribute</methodname>
- <methodparam><type>resource</type><parameter>node</parameter></methodparam>
- <methodparam><type>string</type><parameter>name</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
- <para>
- Returns the attribute with name <parameter>name</parameter> of the given
- node.
+ See also <function>DomDocument_dump_file</function>,
+ <function>DomDocument_html_dump_mem</function>.
</para>
- <simpara>
- See also <function>domxml_set_attribute</function>
- </simpara>
</refsect1>
</refentry>
- <refentry id="function.domxml-set-attribute">
+ <refentry id="function.DomDocument-dump-file">
<refnamediv>
- <refname>domxml_set_attribute</refname>
+ <refname>DomDocument->dump_file</refname>
<refpurpose>
+ Dumps the internal XML tree back into a file
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>domxml_set_attribute</methodname>
- <methodparam><type>resource</type><parameter>node</parameter></methodparam>
- <methodparam><type>string</type><parameter>name</parameter></methodparam>
- <methodparam><type>string</type><parameter>value</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
+ <methodsynopsis>
+ <type>string</type><methodname>DomDocument->dump_file</methodname>
+ <methodparam><type>string</type><parameter>filename</parameter></methodparam>
+ <methodparam
+choice="opt"><type>bool</type><parameter>compressionmode</parameter></methodparam>
+ <methodparam
+choice="opt"><type>bool</type><parameter>format</parameter></methodparam>
+ </methodsynopsis>
<para>
- Sets an attribute with name <parameter>name</parameter> of the given
- node on a value.
+ Creates an XML document from the dom representation. This function
+ usually is called after building a new dom document from scratch
+ as in the example below. The
+ <parameter>format</parameter> specifies whether the output should be
+ neatly formatted, or not. The first parameter specifies the name of the
+ filename and the second parameter, whether it should be compressed or not.
</para>
<para>
- If we take the example from <function>domxml_add_root</function> it
- is simple to add an attribute to the HEAD element by the simply calling
- the <function>set_attribute</function> function of the node class.
<example>
- <title>Adding an attribute to an element</title>
+ <title>Creating a simple HTML document header</title>
<programlisting role="php">
<![CDATA[
<?php
-$doc = new_xmldoc("1.0");
-$root = $doc->add_root("HTML");
-$head = $root->new_child("HEAD", "");
-$head->new_child("TITLE", "Hier der Titel");
-$head->set_attribute("Language", "ge");
-echo $doc->dumpmem();
+$doc = domxml_new_doc("1.0");
+$root = $doc->create_element("HTML");
+$root = $doc->append_child($root);
+$head = $doc->create_element("HEAD");
+$head = $root->append_child($head);
+$title = $doc->create_element("TITLE");
+$title = $head->append_child($title);
+$text = $doc->create_text_node("This is the title");
+$text = $title->append_child($text);
+$doc->dump_file("/tmp/test.xml", false, true);
?>
]]>
</programlisting>
</example>
</para>
+ <para>
+ See also <function>DomDocument_dump_mem</function>
+ <function>DomDocument_html_dump_mem</function>.
+ </para>
</refsect1>
</refentry>
- <refentry id="function.domxml-children">
+ <refentry id="function.DomDocument-html-dump-mem">
<refnamediv>
- <refname>domxml_children</refname>
+ <refname>DomDocument->html_dump_mem</refname>
<refpurpose>
- Returns children of a node or document
+ Dumps the internal XML tree back into a string as HTML
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>array</type><methodname>domxml_children</methodname>
- <methodparam><type>object</type><parameter>doc|node</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
+ <methodsynopsis>
+ <type>string</type><methodname>DomDocument->html_dump_mem</methodname>
+ <void/>
+ </methodsynopsis>
<para>
- Returns all children of a node as an array of nodes.
+ Creates an HTML document from the dom representation. This function
+ usually is called after building a new dom document from scratch
+ as in the example below.
</para>
<para>
- In the following example the variable <varname>children</varname> will
- contain an array with one node of type XML_ELEMENT. This node is
- the TITLE element.
<example>
- <title>Adding an attribute to an element</title>
+ <title>Creating a simple HTML document header</title>
<programlisting role="php">
<![CDATA[
<?php
-$doc = new_xmldoc("1.0");
-$root = $doc->add_root("HTML");
-$head = $root->new_child("HEAD", "");
-$head->new_child("TITLE", "Hier der Titel");
-$head->set_attribute("Language", "ge");
-$children = $head->children();
+$doc = domxml_new_doc("1.0");
+$root = $doc->create_element("HTML");
+$root = $doc->append_child($root);
+$head = $doc->create_element("HEAD");
+$head = $root->append_child($head);
+$title = $doc->create_element("TITLE");
+$title = $head->append_child($title);
+$text = $doc->create_text_node("This is the title");
+$text = $title->append_child($text);
+echo "<PRE>";
+echo htmlentities($doc->html_dump_mem());
+echo "</PRE>";
?>
]]>
</programlisting>
</example>
</para>
+ <para>
+ See also <function>DomDocument_dump_file</function>,
+ <function>DomDocument_html_dump_mem</function>.
+ </para>
</refsect1>
</refentry>
- <refentry id="function.domxml-new-child">
+ <!-- Start of class DomElement -->
+
+ <refentry id='function.DomElement-tagname'>
<refnamediv>
- <refname>domxml_new_child</refname>
+ <refname>DomElement->tagname</refname>
<refpurpose>
- Adds new child node
+ Returns name of element
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>resource</type><methodname>domxml_new_child</methodname>
- <methodparam><type>string</type><parameter>name</parameter></methodparam>
- <methodparam><type>string</type><parameter>content</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
+ <methodsynopsis>
+ <type>string</type><methodname>DomElement->tagname</methodname>
+ <void/>
+ </methodsynopsis>
<para>
- Adds a new child of type element to a node and returns it.
+ &warn.undocumented.func;
</para>
</refsect1>
</refentry>
- <refentry id="function.domxml-new-xmldoc">
+ <refentry id='function.DomElement-get-attribute'>
<refnamediv>
- <refname>domxml_new_xmldoc</refname>
+ <refname>DomElement->get_attribute</refname>
<refpurpose>
- Creates new empty XML document
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>domxml_new_xmldoc</methodname>
- <methodparam><type>string</type><parameter>version</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
- <para>
- Creates a new dom document from scratch and returns it.
- </para>
- <para>
- See also <function>domxml_add_root</function>
- </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.xpath-new-context">
- <refnamediv>
- <refname>xpath_new_context</refname>
- <refpurpose>
- Creates new xpath context
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>xpath_new_context</methodname>
- <methodparam><type>object</type><parameter>dom
document</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
- <para>
- </para>
- <para>
- See also <function>xpath_eval</function>
- </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.xpath-eval">
- <refnamediv>
- <refname>xpath_eval</refname>
- <refpurpose>
- Evaluates the XPath Location Path in the given string
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>array</type><methodname>xpath_eval</methodname>
- <methodparam><type>object</type><parameter>xpath
context</parameter></methodparam>
- </methodsynopsis>
- &warn.experimental.func;
- <para>
- </para>
- <para>
- See also <function>xpath_new_context</function>
- </para>
- </refsect1>
- </refentry>
-
- <!-- Start of class DomElement -->
-
- <refentry id='function.DomElement-tagname'>
- <refnamediv>
- <refname>DomElement->tagname</refname>
- <refpurpose>
- Returns name of element
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <methodsynopsis>
- <type>string</type><methodname>DomElement->tagname</methodname>
- <void/>
- </methodsynopsis>
- <para>
- &warn.undocumented.func;
- </para>
- </refsect1>
- </refentry>
-
- <refentry id='function.DomElement-get-attribute'>
- <refnamediv>
- <refname>DomElement->get_attribute</refname>
- <refpurpose>
- Returns value of attribute
+ Returns value of attribute
</refpurpose>
</refnamediv>
<refsect1>
@@ -1441,7 +1544,11 @@
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
- &warn.undocumented.func;
+ Returns the attribute with name <parameter>name</parameter> of the
+ current node.
+ </para>
+ <para>
+ See also <function>DomElement_set_attribute</function>
</para>
</refsect1>
</refentry>
@@ -1461,7 +1568,26 @@
<methodparam><type>string</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
- &warn.undocumented.func;
+ Sets an attribute with name <parameter>name</parameter> ot the given
+ value. If the attribute does not exist, it will be created.
+ </para>
+ <para>
+ <example>
+ <title>Setting an attribute</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$doc = domxml_new_doc("1.0");
+$node = $doc->create_element("para");
+$newnode = $doc->append_child($node);
+$newnode->set_attribute("align", "left");
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ See also <function>DomElement_get_attribute</function>
</para>
</refsect1>
</refentry>
@@ -1928,7 +2054,7 @@
<programlisting role="php">
<![CDATA[
<?php
-$doc = domxml_new_xmldoc("1.0");
+$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
@@ -1968,7 +2094,7 @@
<programlisting role="php">
<![CDATA[
<?php
-$doc = domxml_new_xmldoc("1.0");
+$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
@@ -2004,12 +2130,40 @@
</methodsynopsis>
<para>
This function inserts the new node <parameter>newnode</parameter> right
- before the node <parameter>refnode</parameter>.
- The return value is the
- appended child. If you plan to do further modifications on the appended
+ before the node <parameter>refnode</parameter>. The return value is the
+ inserted node. If you plan to do further modifications on the appended
child you must use the returned node.
</para>
<para>
+ <function>DomNode_insert_before</function> is very similar to
+ <function>DomNode_append_child</function> as the following example shows
+ which does the same as the example at
+ <function>DomNode_append_child</function>.
+ </para>
+ <para>
+ <example>
+ <title>Adding a child</title>
+ <programlisting role="php">
+<![CDATA[
+include("example.inc");
+
+$elements = $dom->get_elements_by_tagname("informaltable");
+print_r($elements);
+$element = $elements[0];
+
+$newnode = $element->insert_before($element, $element);
+$children = $newnode->children();
+$attr = $children[1]->set_attribute("align", "left");
+
+echo "<PRE>";
+$xmlfile = $dom->dump_mem();
+echo htmlentities($xmlfile);
+echo "</PRE>";
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
See also <function>DomNode_append_child</function>.
</para>
</refsect1>
@@ -2030,26 +2184,79 @@
</methodsynopsis>
<para>
This functions appends a child to an existing list of children or creates
- a new child. The child can be created with e.g.
+ a new list of children. The child can be created with e.g.
<function>DomDocument_create_element</function>,
- <function>DomDocument_create_text</function> etc. The return value is the
+ <function>DomDocument_create_text</function> etc. or simply by using any
+ other node.
+ </para>
+ <para>
+ Before a new child is appended it is first duplicated. Therefore the new
+ child is a completely new copy which can be modified without changing the
+ node which was passed to this function. If the node passed has children
+ itself, they will be duplicated as well, which makes it quite easy to
+ duplicate large parts of a xml document. The return value is the
appended child. If you plan to do further modifications on the appended
child you must use the returned node.
</para>
<para>
+ The following example will add a new element node to a fresh document
+ and sets the attribute "align" to "left".
<example>
<title>Adding a child</title>
<programlisting role="php">
<![CDATA[
<?php
-$doc = domxml_new_xmldoc("1.0");
+$doc = domxml_new_doc("1.0");
+$node = $doc->create_element("para");
+$newnode = $doc->append_child($node);
+$newnode->set_attribute("align", "left");
+?>
+]]>
+ </programlisting>
+ </example>
+ The above example could also be written as the following:
+ <example>
+ <title>Adding a child</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
-$node = $doc->append_child($node);
$node->set_attribute("align", "left");
+$newnode = $doc->append_child($node);
?>
]]>
</programlisting>
</example>
+ A more comples example is the one below. It first searches for a certain
+ element, duplicates it including its children and adds it as a sibling.
+ Finally a new attribute is added to one of the children of the new
+ sibling and the whole document is dumped.
+ <example>
+ <title>Adding a child</title>
+ <programlisting role="php">
+<![CDATA[
+include("example.inc");
+
+$elements = $dom->get_elements_by_tagname("informaltable");
+print_r($elements);
+$element = $elements[0];
+
+$parent = $element->parent_node();
+$newnode = $parent->append_child($element);
+$children = $newnode->children();
+$attr = $children[1]->set_attribute("align", "left");
+
+echo "<PRE>";
+$xmlfile = $dom->dump_mem();
+echo htmlentities($xmlfile);
+echo "</PRE>";
+]]>
+ </programlisting>
+ </example>
+ The above example could also be done with
+ <function>DomNode_insert_before</function> instead of
+ <function>DomNode_append_child</function>.
</para>
<para>
See also <function>DomNode_insert_before</function>.
@@ -2101,6 +2308,183 @@
</refsect1>
</refentry>
+ <refentry id='function.DomNode-prefix'>
+ <refnamediv>
+ <refname>DomNode->prefix</refname>
+ <refpurpose>
+ Returns name space prefix of node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>string</type><methodname>DomNode->prefix</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ Returns the name space prefix of the node.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-clone-node'>
+ <refnamediv>
+ <refname>DomNode->clone_node</refname>
+ <refpurpose>
+ Clones a node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>object</type><methodname>DomNode->clone_node</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-unlink-node'>
+ <refnamediv>
+ <refname>DomNode->unlink_node</refname>
+ <refpurpose>
+ Deletes node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>object</type><methodname>DomNode->unlink_node</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-replace-node'>
+ <refnamediv>
+ <refname>DomNode->replace_node</refname>
+ <refpurpose>
+ Replaces node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>object</type><methodname>DomNode->replace_node</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-set-content'>
+ <refnamediv>
+ <refname>DomNode->set_content</refname>
+ <refpurpose>
+ Sets content of node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>bool</type><methodname>DomNode->set_content</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-get-content'>
+ <refnamediv>
+ <refname>DomNode->get_content</refname>
+ <refpurpose>
+ Gets content of node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>string</type><methodname>DomNode->get_content</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-dump-node'>
+ <refnamediv>
+ <refname>DomNode->dump_node</refname>
+ <refpurpose>
+ Dumps a single node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>string</type><methodname>DomNode->dump_node</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ <para>
+ See also <function>DomDocument_dump_mem</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-set-name'>
+ <refnamediv>
+ <refname>DomNode->set_name</refname>
+ <refpurpose>
+ Sets name of node
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>bool</type><methodname>DomNode->set_name</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ Sets name of node.
+ </para>
+ <para>
+ See also <function>DomNode_node_name</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id='function.DomNode-is-blank-node'>
+ <refnamediv>
+ <refname>DomNode->is_blank_node</refname>
+ <refpurpose>
+ Checks if node is blank
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>bool</type><methodname>DomNode->is_blank_node</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ &warn.undocumented.func;
+ </para>
+ </refsect1>
+ </refentry>
+
<!-- End of class DomNode -->
<!-- Start of class DomAttribute -->
@@ -2254,7 +2638,7 @@
<?php
include("example.inc");
-if(!$dom = xmldoc($xmlstr)) {
+if(!$dom = domxml_open_mem($xmlstr)) {
echo "Error while parsing the document\n";
exit;
}
@@ -2295,7 +2679,7 @@
<?php
include("example.inc");
-if(!$dom = xmldoc($xmlstr)) {
+if(!$dom = domxml_open_mem($xmlstr)) {
echo "Error while parsing the document\n";
exit;
}
@@ -2331,69 +2715,76 @@
<!-- End of class DomDocumentType -->
- <!-- Start of class XPathContext -->
- <!-- End of class XPathContext -->
+ <!-- Start of class DomProcessingInstruction -->
- <refentry id='function.domxml-node'>
+ <refentry id='function.DomProcessingInstruction-target'>
<refnamediv>
- <refname>domxml_node</refname>
+ <refname>DomProcessingInstruction->target</refname>
<refpurpose>
- Creates node
+ Returns target of pi node
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>domxml_node</methodname>
- <methodparam><type>string</type><parameter>name</parameter></methodparam>
- </methodsynopsis>
+ <methodsynopsis>
+ <type>string</type><methodname>DomProcessingInstruction->target</methodname>
+ <void/>
+ </methodsynopsis>
<para>
&warn.undocumented.func;
</para>
</refsect1>
</refentry>
- <refentry id='function.domxml-node-set-content'>
+ <refentry id='function.DomProcessingInstruction-data'>
<refnamediv>
- <refname>domxml_node_set_content</refname>
+ <refname>DomProcessingInstruction->data</refname>
<refpurpose>
- Sets content of a node
+ Returns data of pi node
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>bool</type><methodname>domxml_node_set_content</methodname>
- <methodparam><type>string</type><parameter>content</parameter></methodparam>
- </methodsynopsis>
+ <methodsynopsis>
+ <type>string</type><methodname>DomProcessingInstruction->data</methodname>
+ <void/>
+ </methodsynopsis>
<para>
&warn.undocumented.func;
</para>
</refsect1>
</refentry>
- <refentry id='function.domxml-node-unlink-node'>
+ <!-- End of class DomProcessingInstruction -->
+
+ <!-- Start of class XPathContext -->
+ <!-- End of class XPathContext -->
+
+ <refentry id="function.xpath-new-context">
<refnamediv>
- <refname>domxml_node_unlink_node</refname>
+ <refname>xpath_new_context</refname>
<refpurpose>
- Deletes node
+ Creates new xpath context
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>object</type><methodname>domxml_node_unlink_node</methodname>
- <void/>
- </methodsynopsis>
+ <methodsynopsis>
+ <type>object</type><methodname>xpath_new_context</methodname>
+ <methodparam><type>object</type><parameter>dom
+document</parameter></methodparam>
+ </methodsynopsis>
+ &warn.experimental.func;
<para>
- &warn.undocumented.func;
+ </para>
+ <para>
+ See also <function>xpath_eval</function>
</para>
</refsect1>
</refentry>
- <refentry id="function.xpath-eval-expression">
+ <refentry id="function.xpath-eval">
<refnamediv>
- <refname>xpath_eval_expression</refname>
+ <refname>xpath_eval</refname>
<refpurpose>
Evaluates the XPath Location Path in the given string
</refpurpose>
@@ -2401,33 +2792,36 @@
<refsect1>
<title>Description</title>
<methodsynopsis>
- <type>array</type><methodname>xpath_eval_expression</methodname>
-
<methodparam><type>object</type><parameter>xpath_context</parameter></methodparam>
+ <type>array</type><methodname>xpath_eval</methodname>
+ <methodparam><type>object</type><parameter>xpath
+context</parameter></methodparam>
</methodsynopsis>
- &warn.experimental.func;
+ &warn.experimental.func;
<para>
</para>
<para>
- See also <function>xpath_eval</function>
+ See also <function>xpath_new_context</function>
</para>
</refsect1>
</refentry>
- <refentry id='function.domxml-version'>
+ <refentry id="function.xpath-eval-expression">
<refnamediv>
- <refname>domxml_version</refname>
+ <refname>xpath_eval_expression</refname>
<refpurpose>
- Get XML library version
+ Evaluates the XPath Location Path in the given string
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
- <methodsynopsis>
- <type>string</type><methodname>domxml_version</methodname>
- <void/>
- </methodsynopsis>
+ <methodsynopsis>
+ <type>array</type><methodname>xpath_eval_expression</methodname>
+
+<methodparam><type>object</type><parameter>xpath_context</parameter></methodparam>
+ </methodsynopsis>
+ &warn.experimental.func;
<para>
- This function returns the version of the XML library version currently used.
+ </para>
+ <para>
+ See also <function>xpath_eval</function>
</para>
</refsect1>
</refentry>