didou Sun Dec 19 08:21:33 2004 EDT Added files: /phpdoc/en/reference/dom/functions dom-domxpath-construct.xml
Modified files: /phpdoc/entities global.ent /phpdoc/en/reference/dom reference.xml /phpdoc/en/reference/dom/functions dom-domimplementation-hasfeature.xml dom-domxpath-query.xml Log: Added a generic XML file for use in examples Added DOMImplementation and documented DOMImplemntation::hasFeature() Added DOMXPath::__construct and documented DOMXPath::query
http://cvs.php.net/diff.php/phpdoc/entities/global.ent?r1=1.207&r2=1.208&ty=u Index: phpdoc/entities/global.ent diff -u phpdoc/entities/global.ent:1.207 phpdoc/entities/global.ent:1.208 --- phpdoc/entities/global.ent:1.207 Fri Dec 17 11:15:36 2004 +++ phpdoc/entities/global.ent Sun Dec 19 08:21:29 2004 @@ -1,6 +1,6 @@ <!-- -*- SGML -*- - $Id: global.ent,v 1.207 2004/12/17 16:15:36 didou Exp $ + $Id: global.ent,v 1.208 2004/12/19 13:21:29 didou Exp $ Contains global "macros" for all the XML documents. @@ -61,6 +61,7 @@ <!ENTITY url.docbook-dtdref "http://www.docbook.org/tdg/en/html/part2.html"> <!ENTITY url.docbook-intro "http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro.html"> <!ENTITY url.dom2.spec "http://www.w3c.org/DOM/DOMTR#dom2"> +<!ENTITY url.dom2.features "http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/introduction.html#ID-Conformance"> <!ENTITY url.domxml "http://www.xmlsoft.org/"> <!ENTITY url.dsssl "http://www.jclark.com/dsssl/"> <!ENTITY url.echo-print "http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40"> http://cvs.php.net/diff.php/phpdoc/en/reference/dom/reference.xml?r1=1.5&r2=1.6&ty=u Index: phpdoc/en/reference/dom/reference.xml diff -u phpdoc/en/reference/dom/reference.xml:1.5 phpdoc/en/reference/dom/reference.xml:1.6 --- phpdoc/en/reference/dom/reference.xml:1.5 Fri Dec 17 12:51:20 2004 +++ phpdoc/en/reference/dom/reference.xml Sun Dec 19 08:21:32 2004 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.5 $ --> +<!-- $Revision: 1.6 $ --> <reference id="ref.dom"> <title>DOM Functions</title> <titleabbrev>DOM</titleabbrev> @@ -648,6 +648,30 @@ </section> </section> + <section id='dom.class.domimplementation'> + <title><classname>DOMImplementation</classname></title> + <para> + The <classname>DOMImplementation</classname> interface provides a number + of methods for performing operations that are independent of any + particular instance of the document object model. + </para> + <section id='dom.class.domimplementation.methods'> + &reftitle.methods; + <itemizedlist> + <listitem> + <para><link linkend='function.dom-domimplementation-createdocument'>createDocument</link> - Creates a DOM Document object of the specified type with its document element</para> + </listitem> + <listitem> + <para><link linkend='function.dom-domimplementation-createdocumenttype'>createDocumentType</link> - Creates an empty DOMDocumentType object</para> + </listitem> + <listitem> + <para><link linkend='function.dom-domimplementation-hasfeature'>hasFeature</link> - Test if the DOM implementation implements a specific feature</para> + </listitem> + </itemizedlist> + </section> + </section> + + <section id='dom.class.domnamelist'> <title><classname>DOMNameList</classname></title> <para> @@ -1019,6 +1043,14 @@ <title><classname>DOMXPath</classname></title> <para> </para> + <section id='dom.class.domxpath.constructor'> + &reftitle.constructor; + <itemizedlist> + <listitem> + <para><link linkend='function.dom-domxpath-construct'>__construct</link> - construct a new DOMXPath object</para> + </listitem> + </itemizedlist> + </section> <section id='dom.class.domxpath.methods'> &reftitle.methods; <itemizedlist> @@ -1061,6 +1093,55 @@ </section> + <section id="dom.examples"> + &reftitle.examples; + <para> + Many examples in this reference require an XML file. We will use the + <filename>chapter.xml</filename> that contains the following: + </para> + <para> + <example> + <title>chapter.xml</title> + <programlisting role="xml"> +<![CDATA[ +<?xml version="1.0" standalone="yes"?> +<!DOCTYPE chapter PUBLIC '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd' +[ <!ENTITY sp "spanish"> +]> +<chapter language="en"> + <title language="en">Title</title> + <para language="ge"> + &sp; + <!-- comment --> + <informaltable ID="findme" language="&sp;"> + <tgroup cols="3"> + <tbody> + <row> + <entry>a1</entry> + <entry morerows="1">b1</entry> + <entry>c1</entry> + </row> + <row> + <entry>a2</entry> + <entry>c2</entry> + </row> + <row> + <entry>a3</entry> + <entry>b3</entry> + <entry>c3</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> +</chapter> +]]> + </programlisting> + </example> + </para> + </section> + + &reference.dom.constants; </partintro> http://cvs.php.net/diff.php/phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml?r1=1.4&r2=1.5&ty=u Index: phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml diff -u phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml:1.4 phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml:1.5 --- phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml:1.4 Fri Dec 17 10:11:30 2004 +++ phpdoc/en/reference/dom/functions/dom-domimplementation-hasfeature.xml Sun Dec 19 08:21:33 2004 @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.4 $ --> +<!-- $Revision: 1.5 $ --> <refentry id='function.dom-domimplementation-hasfeature'> <refnamediv> <refname>DOMImplementation->hasFeature</refname> <refpurpose> - Test if the DOM implementation implements a specific feature and version + Test if the DOM implementation implements a specific feature </refpurpose> </refnamediv> <refsect1> @@ -19,8 +19,54 @@ </methodsynopsis> </classsynopsis> <para> - Test if the DOM implementation implements a specific feature and version. + Test if the DOM implementation implements a specific + <parameter>feature</parameter>. &return.success; </para> + <para> + You can find a list of all features in the <ulink + url="&url.dom2.features;">Conformance</ulink> section of the DOM + specification. + </para> + <para> + <parameter>version</parameter> is the version number of the feature to + test. In level 2, this can be either <literal>2.0</literal> or + <literal>1.0</literal>. + </para> + <example> + <title>Testing your DOM Implementation</title> + <programlisting role="php"> +<![CDATA[ +<?php + +$features = array( + 'Core' => 'Core module', + 'XML' => 'XML module', + 'HTML' => 'HTML module', + 'Views' => 'Views module', + 'Stylesheets' => 'Style Sheets module', + 'CSS' => 'CSS module', + 'CSS2' => 'CSS2 module', + 'Events' => 'Events module', + 'UIEvents' => 'User interface Events module', + 'MouseEvents' => 'Mouse Events module', + 'MutationEvents' => 'Mutation Events module', + 'HTMLEvents' => 'HTML Events module', + 'Range' => 'Range module', + 'Traversal' => 'Traversal module' +); + +foreach ($features as $key => $name) { + if (DOMImplementation::hasFeature($key, '2.0')) { + echo "Has feature $name\n"; + } else { + echo "Missing feature $name\n"; + } +} + +?> +]]> + </programlisting> + </example> </refsect1> </refentry> http://cvs.php.net/diff.php/phpdoc/en/reference/dom/functions/dom-domxpath-query.xml?r1=1.5&r2=1.6&ty=u Index: phpdoc/en/reference/dom/functions/dom-domxpath-query.xml diff -u phpdoc/en/reference/dom/functions/dom-domxpath-query.xml:1.5 phpdoc/en/reference/dom/functions/dom-domxpath-query.xml:1.6 --- phpdoc/en/reference/dom/functions/dom-domxpath-query.xml:1.5 Fri Dec 17 11:15:37 2004 +++ phpdoc/en/reference/dom/functions/dom-domxpath-query.xml Sun Dec 19 08:21:33 2004 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.5 $ --> +<!-- $Revision: 1.6 $ --> <refentry id="function.dom-domxpath-query"> <refnamediv> <refname>DOMXPath->query</refname> @@ -19,16 +19,76 @@ </methodsynopsis> </classsynopsis> <para> - Returns a DOMNodeList containing all nodes matching - <parameter>expression</parameter>. Any expression which do not return - nodes will return an empty DOMNodeList. + Returns a <classname>DOMNodeList</classname> containing all nodes matching + the given XPath <parameter>expression</parameter>. Any expression which do + not return nodes will return an empty <classname>DOMNodeList</classname>. + </para> + <para> + <example> + <title>Getting all entries begining with "b"</title> + <programlisting role="php"> +<![CDATA[ +<?php + +$doc = new DOMDocument; +$doc->Load('chapter.xml'); + +$xpath = new DOMXPath($doc); + +// We starts from the root element +$query = '//chapter/para/informaltable/tgroup/tbody/row/entry[substring(., 1, 1) = "b"]'; + +$entries = $xpath->query($query); + +foreach ($entries as $entry) { + echo 'cell: ' . $entry->nodeValue . "\n"; +} +?> +]]> + </programlisting> + &example.outputs; + <screen> +<![CDATA[ +cell: b1 +cell: b3 +]]> + </screen> + </example> </para> <para> The optional <parameter>contextnode</parameter> can be specified for doing - relative XPath queries. + relative XPath queries. By default, the queries are relative to the root + element. Knowing that, we can rewrite our previous example as follow: </para> - </refsect1> - </refentry> + <para> + <example> + <title>Using the context node</title> + <programlisting role="php"> +<![CDATA[ +<?php + +$doc = new DOMDocument; +$doc->Load('chapter.xml'); + +$xpath = new DOMXPath($doc); + +$tbody = $doc->getElementsByTagName('tbody')->item(0); + +// our query is relative to the tbody node +$query = 'row/entry[substring(., 1, 1) = "b"]'; + +$entries = $xpath->query($query, $tbody); + +foreach ($entries as $entry) { + echo 'cell: ' . $entry->nodeValue . "\n"; +} +?> +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/co.php/phpdoc/en/reference/dom/functions/dom-domxpath-construct.xml?r=1.1&p=1 Index: phpdoc/en/reference/dom/functions/dom-domxpath-construct.xml +++ phpdoc/en/reference/dom/functions/dom-domxpath-construct.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id='function.dom-domxpath-construct'> <refnamediv> <refname>DOMXPath->__construct</refname> <refpurpose> Creates a new DOMXPath object </refpurpose> </refnamediv> <refsect1> &reftitle.description; <classsynopsis> <ooclass><classname>DOMXPath</classname></ooclass> <constructorsynopsis> <methodname>__construct</methodname> <methodparam><type>DOMDocument</type><parameter>doc</parameter></methodparam> </constructorsynopsis> </classsynopsis> <para> Creates a new <classname>DOMXPath</classname> object. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->