Skip to content

Commit bac9d6a

Browse files
authored
Document DOMXPath::quote() (#3909)
1 parent f023171 commit bac9d6a

File tree

2 files changed

+128
-0
lines changed

2 files changed

+128
-0
lines changed

reference/dom/domxpath/quote.xml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<refentry xml:id="domxpath.quote" xmlns="http://docbook.org/ns/docbook">
4+
<refnamediv>
5+
<refname>DOMXPath::quote</refname>
6+
<refpurpose>
7+
Quotes a string for use in an XPath expression
8+
</refpurpose>
9+
</refnamediv>
10+
11+
<refsect1 role="description">
12+
&reftitle.description;
13+
<methodsynopsis role="DOMXPath">
14+
<modifier>public</modifier> <modifier>static</modifier> <type>string</type><methodname>DOMXPath::quote</methodname>
15+
<methodparam><type>string</type><parameter>str</parameter></methodparam>
16+
</methodsynopsis>
17+
<simpara>
18+
Quotes <parameter>str</parameter> for use in an XPath expression.
19+
</simpara>
20+
</refsect1>
21+
22+
<refsect1 role="parameters">
23+
&reftitle.parameters;
24+
<para>
25+
<variablelist>
26+
<varlistentry>
27+
<term><parameter>str</parameter></term>
28+
<listitem>
29+
<simpara>
30+
The string to quote.
31+
</simpara>
32+
</listitem>
33+
</varlistentry>
34+
</variablelist>
35+
</para>
36+
</refsect1>
37+
38+
<refsect1 role="returnvalues">
39+
&reftitle.returnvalues;
40+
<simpara>
41+
Returns a quoted string to be used in an XPath expression.
42+
</simpara>
43+
</refsect1>
44+
45+
<refsect1 role="examples">
46+
&reftitle.examples;
47+
<example>
48+
<title>Matching attribute value with quotes</title>
49+
<programlisting role="php">
50+
<![CDATA[
51+
<?php
52+
$doc = new DOMDocument;
53+
$doc->loadXML(<<<XML
54+
<books>
55+
<book name="'quoted' name">Book title</book>
56+
</books>
57+
XML);
58+
59+
$xpath = new DOMXPath($doc);
60+
61+
$query = "//book[@name=" . DOMXPath::quote("'quoted' name") . "]";
62+
echo $query, "\n";
63+
64+
$entries = $xpath->query($query);
65+
66+
foreach ($entries as $entry) {
67+
echo "Found ", $entry->textContent, "\n";
68+
}
69+
?>
70+
]]>
71+
</programlisting>
72+
&example.outputs;
73+
<screen>
74+
<![CDATA[
75+
//book[@name="'quoted' name"]
76+
Found Book title
77+
]]>
78+
</screen>
79+
<simpara>
80+
Mixed quote types are also supported:
81+
</simpara>
82+
<programlisting role="php">
83+
<![CDATA[
84+
<?php
85+
echo DOMXPath::quote("'different' \"quote\" styles");
86+
?>
87+
]]>
88+
</programlisting>
89+
&example.outputs;
90+
<screen>
91+
<![CDATA[
92+
concat("'different' ",'"quote" styles')
93+
]]>
94+
</screen>
95+
</example>
96+
</refsect1>
97+
98+
<refsect1 role="seealso">
99+
&reftitle.seealso;
100+
<para>
101+
<simplelist>
102+
<member><methodname>DOMXPath::evaluate</methodname></member>
103+
<member><methodname>DOMXPath::query</methodname></member>
104+
</simplelist>
105+
</para>
106+
</refsect1>
107+
</refentry>
108+
<!-- Keep this comment at the end of the file
109+
Local variables:
110+
mode: sgml
111+
sgml-omittag:t
112+
sgml-shorttag:t
113+
sgml-minimize-attributes:nil
114+
sgml-always-quote-attributes:t
115+
sgml-indent-step:1
116+
sgml-indent-data:t
117+
indent-tabs-mode:nil
118+
sgml-parent-document:nil
119+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
120+
sgml-exposed-tags:nil
121+
sgml-local-catalogs:nil
122+
sgml-local-ecat-files:nil
123+
End:
124+
vim600: syn=xml fen fdm=syntax fdl=2 si
125+
vim: et tw=78 syn=sgml
126+
vi: ts=1 sw=1
127+
-->

reference/dom/versions.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
<function name="domxpath::query" from="PHP 5, PHP 7, PHP 8"/>
194194
<function name="domxpath::registernamespace" from="PHP 5, PHP 7, PHP 8"/>
195195
<function name="domxpath::registerphpfunctions" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
196+
<function name="domxpath::quote" from="PHP 8 &gt;= 8.4.0"/>
196197

197198
<function name="dom_import_simplexml" from="PHP 5, PHP 7, PHP 8"/>
198199

0 commit comments

Comments
 (0)