2ec5e81f7dd938965f5d0dd3d810b71d751c729b
[platform/upstream/python-lxml.git] / doc / html / api / lxml.tests.selftest-module.html
1 <?xml version="1.0" encoding="ascii"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3           "DTD/xhtml1-transitional.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5 <head>
6   <title>lxml.tests.selftest</title>
7   <link rel="stylesheet" href="epydoc.css" type="text/css" />
8   <script type="text/javascript" src="epydoc.js"></script>
9 </head>
10
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
12       alink="#204080">
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15        bgcolor="#a0c0ff" cellspacing="0">
16   <tr valign="middle">
17   <!-- Home link -->
18       <th>&nbsp;&nbsp;&nbsp;<a
19         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21   <!-- Tree link -->
22       <th>&nbsp;&nbsp;&nbsp;<a
23         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25   <!-- Index link -->
26       <th>&nbsp;&nbsp;&nbsp;<a
27         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29   <!-- Help link -->
30       <th>&nbsp;&nbsp;&nbsp;<a
31         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
33   <!-- Project homepage -->
34       <th class="navbar" align="right" width="100%">
35         <table border="0" cellpadding="0" cellspacing="0">
36           <tr><th class="navbar" align="center"
37             ><a class="navbar" target="_top" href="/">lxml API</a></th>
38           </tr></table></th>
39   </tr>
40 </table>
41 <table width="100%" cellpadding="0" cellspacing="0">
42   <tr valign="top">
43     <td width="100%">
44       <span class="breadcrumbs">
45         <a href="lxml-module.html">Package&nbsp;lxml</a> ::
46         <a href="lxml.tests-module.html">Package&nbsp;tests</a> ::
47         Module&nbsp;selftest
48       </span>
49     </td>
50     <td>
51       <table cellpadding="0" cellspacing="0">
52         <!-- hide/show private -->
53         <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
54     onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
55         <tr><td align="right"><span class="options"
56             >[<a href="frames.html" target="_top">frames</a
57             >]&nbsp;|&nbsp;<a href="lxml.tests.selftest-module.html"
58             target="_top">no&nbsp;frames</a>]</span></td></tr>
59       </table>
60     </td>
61   </tr>
62 </table>
63 <!-- ==================== MODULE DESCRIPTION ==================== -->
64 <h1 class="epydoc">Module selftest</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.tests.selftest-pysrc.html">source&nbsp;code</a></span></p>
65 <!-- ==================== FUNCTIONS ==================== -->
66 <a name="section-Functions"></a>
67 <table class="summary" border="1" cellpadding="3"
68        cellspacing="0" width="100%" bgcolor="white">
69 <tr bgcolor="#70b0f0" class="table-header">
70   <td colspan="2" class="table-header">
71     <table border="0" cellpadding="0" cellspacing="0" width="100%">
72       <tr valign="top">
73         <td align="left"><span class="table-header">Functions</span></td>
74         <td align="right" valign="top"
75          ><span class="options">[<a href="#section-Functions"
76          class="privatelink" onclick="toggle_private();"
77          >hide private</a>]</span></td>
78       </tr>
79     </table>
80   </td>
81 </tr>
82 <tr>
83     <td width="15%" align="right" valign="top" class="summary">
84       <span class="summary-type">&nbsp;</span>
85     </td><td class="summary">
86       <table width="100%" cellpadding="0" cellspacing="0" border="0">
87         <tr>
88           <td><span class="summary-sig"><a name="stdout"></a><span class="summary-sig-name">stdout</span>()</span></td>
89           <td align="right" valign="top">
90             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#stdout">source&nbsp;code</a></span>
91             
92           </td>
93         </tr>
94       </table>
95       
96     </td>
97   </tr>
98 <tr>
99     <td width="15%" align="right" valign="top" class="summary">
100       <span class="summary-type">&nbsp;</span>
101     </td><td class="summary">
102       <table width="100%" cellpadding="0" cellspacing="0" border="0">
103         <tr>
104           <td><span class="summary-sig"><a name="fix_compatibility"></a><span class="summary-sig-name">fix_compatibility</span>(<span class="summary-sig-arg">xml_data</span>)</span></td>
105           <td align="right" valign="top">
106             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#fix_compatibility">source&nbsp;code</a></span>
107             
108           </td>
109         </tr>
110       </table>
111       
112     </td>
113   </tr>
114 <tr>
115     <td width="15%" align="right" valign="top" class="summary">
116       <span class="summary-type">&nbsp;</span>
117     </td><td class="summary">
118       <table width="100%" cellpadding="0" cellspacing="0" border="0">
119         <tr>
120           <td><span class="summary-sig"><a name="serialize"></a><span class="summary-sig-name">serialize</span>(<span class="summary-sig-arg">elem</span>,
121         <span class="summary-sig-arg">**options</span>)</span></td>
122           <td align="right" valign="top">
123             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#serialize">source&nbsp;code</a></span>
124             
125           </td>
126         </tr>
127       </table>
128       
129     </td>
130   </tr>
131 <tr>
132     <td width="15%" align="right" valign="top" class="summary">
133       <span class="summary-type">&nbsp;</span>
134     </td><td class="summary">
135       <table width="100%" cellpadding="0" cellspacing="0" border="0">
136         <tr>
137           <td><span class="summary-sig"><a name="summarize"></a><span class="summary-sig-name">summarize</span>(<span class="summary-sig-arg">elem</span>)</span></td>
138           <td align="right" valign="top">
139             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#summarize">source&nbsp;code</a></span>
140             
141           </td>
142         </tr>
143       </table>
144       
145     </td>
146   </tr>
147 <tr>
148     <td width="15%" align="right" valign="top" class="summary">
149       <span class="summary-type">&nbsp;</span>
150     </td><td class="summary">
151       <table width="100%" cellpadding="0" cellspacing="0" border="0">
152         <tr>
153           <td><span class="summary-sig"><a name="summarize_list"></a><span class="summary-sig-name">summarize_list</span>(<span class="summary-sig-arg">seq</span>)</span></td>
154           <td align="right" valign="top">
155             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#summarize_list">source&nbsp;code</a></span>
156             
157           </td>
158         </tr>
159       </table>
160       
161     </td>
162   </tr>
163 <tr>
164     <td width="15%" align="right" valign="top" class="summary">
165       <span class="summary-type">&nbsp;</span>
166     </td><td class="summary">
167       <table width="100%" cellpadding="0" cellspacing="0" border="0">
168         <tr>
169           <td><span class="summary-sig"><a name="normalize_crlf"></a><span class="summary-sig-name">normalize_crlf</span>(<span class="summary-sig-arg">tree</span>)</span></td>
170           <td align="right" valign="top">
171             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#normalize_crlf">source&nbsp;code</a></span>
172             
173           </td>
174         </tr>
175       </table>
176       
177     </td>
178   </tr>
179 <tr>
180     <td width="15%" align="right" valign="top" class="summary">
181       <span class="summary-type">&nbsp;</span>
182     </td><td class="summary">
183       <table width="100%" cellpadding="0" cellspacing="0" border="0">
184         <tr>
185           <td><span class="summary-sig"><a name="check_string"></a><span class="summary-sig-name">check_string</span>(<span class="summary-sig-arg">string</span>)</span></td>
186           <td align="right" valign="top">
187             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_string">source&nbsp;code</a></span>
188             
189           </td>
190         </tr>
191       </table>
192       
193     </td>
194   </tr>
195 <tr>
196     <td width="15%" align="right" valign="top" class="summary">
197       <span class="summary-type">&nbsp;</span>
198     </td><td class="summary">
199       <table width="100%" cellpadding="0" cellspacing="0" border="0">
200         <tr>
201           <td><span class="summary-sig"><a name="check_string_or_none"></a><span class="summary-sig-name">check_string_or_none</span>(<span class="summary-sig-arg">value</span>)</span></td>
202           <td align="right" valign="top">
203             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_string_or_none">source&nbsp;code</a></span>
204             
205           </td>
206         </tr>
207       </table>
208       
209     </td>
210   </tr>
211 <tr>
212     <td width="15%" align="right" valign="top" class="summary">
213       <span class="summary-type">&nbsp;</span>
214     </td><td class="summary">
215       <table width="100%" cellpadding="0" cellspacing="0" border="0">
216         <tr>
217           <td><span class="summary-sig"><a name="check_mapping"></a><span class="summary-sig-name">check_mapping</span>(<span class="summary-sig-arg">mapping</span>)</span></td>
218           <td align="right" valign="top">
219             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_mapping">source&nbsp;code</a></span>
220             
221           </td>
222         </tr>
223       </table>
224       
225     </td>
226   </tr>
227 <tr>
228     <td width="15%" align="right" valign="top" class="summary">
229       <span class="summary-type">&nbsp;</span>
230     </td><td class="summary">
231       <table width="100%" cellpadding="0" cellspacing="0" border="0">
232         <tr>
233           <td><span class="summary-sig"><a name="check_element"></a><span class="summary-sig-name">check_element</span>(<span class="summary-sig-arg">element</span>)</span></td>
234           <td align="right" valign="top">
235             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_element">source&nbsp;code</a></span>
236             
237           </td>
238         </tr>
239       </table>
240       
241     </td>
242   </tr>
243 <tr>
244     <td width="15%" align="right" valign="top" class="summary">
245       <span class="summary-type">&nbsp;</span>
246     </td><td class="summary">
247       <table width="100%" cellpadding="0" cellspacing="0" border="0">
248         <tr>
249           <td><span class="summary-sig"><a name="check_element_tree"></a><span class="summary-sig-name">check_element_tree</span>(<span class="summary-sig-arg">tree</span>)</span></td>
250           <td align="right" valign="top">
251             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_element_tree">source&nbsp;code</a></span>
252             
253           </td>
254         </tr>
255       </table>
256       
257     </td>
258   </tr>
259 <tr>
260     <td width="15%" align="right" valign="top" class="summary">
261       <span class="summary-type">&nbsp;</span>
262     </td><td class="summary">
263       <table width="100%" cellpadding="0" cellspacing="0" border="0">
264         <tr>
265           <td><span class="summary-sig"><a name="interface"></a><span class="summary-sig-name">interface</span>()</span><br />
266       Test element tree interface.</td>
267           <td align="right" valign="top">
268             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#interface">source&nbsp;code</a></span>
269             
270           </td>
271         </tr>
272       </table>
273       
274     </td>
275   </tr>
276 <tr>
277     <td width="15%" align="right" valign="top" class="summary">
278       <span class="summary-type">&nbsp;</span>
279     </td><td class="summary">
280       <table width="100%" cellpadding="0" cellspacing="0" border="0">
281         <tr>
282           <td><span class="summary-sig"><a name="simpleops"></a><span class="summary-sig-name">simpleops</span>()</span></td>
283           <td align="right" valign="top">
284             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#simpleops">source&nbsp;code</a></span>
285             
286           </td>
287         </tr>
288       </table>
289       
290     </td>
291   </tr>
292 <tr>
293     <td width="15%" align="right" valign="top" class="summary">
294       <span class="summary-type">&nbsp;</span>
295     </td><td class="summary">
296       <table width="100%" cellpadding="0" cellspacing="0" border="0">
297         <tr>
298           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#find" class="summary-sig-name">find</a>()</span><br />
299       Test find methods (including xpath syntax).</td>
300           <td align="right" valign="top">
301             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#find">source&nbsp;code</a></span>
302             
303           </td>
304         </tr>
305       </table>
306       
307     </td>
308   </tr>
309 <tr>
310     <td width="15%" align="right" valign="top" class="summary">
311       <span class="summary-type">&nbsp;</span>
312     </td><td class="summary">
313       <table width="100%" cellpadding="0" cellspacing="0" border="0">
314         <tr>
315           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#bad_find" class="summary-sig-name">bad_find</a>()</span><br />
316       Check bad or unsupported path expressions.</td>
317           <td align="right" valign="top">
318             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bad_find">source&nbsp;code</a></span>
319             
320           </td>
321         </tr>
322       </table>
323       
324     </td>
325   </tr>
326 <tr>
327     <td width="15%" align="right" valign="top" class="summary">
328       <span class="summary-type">&nbsp;</span>
329     </td><td class="summary">
330       <table width="100%" cellpadding="0" cellspacing="0" border="0">
331         <tr>
332           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#parsefile" class="summary-sig-name">parsefile</a>()</span><br />
333       Test parsing from file.</td>
334           <td align="right" valign="top">
335             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parsefile">source&nbsp;code</a></span>
336             
337           </td>
338         </tr>
339       </table>
340       
341     </td>
342   </tr>
343 <tr>
344     <td width="15%" align="right" valign="top" class="summary">
345       <span class="summary-type">&nbsp;</span>
346     </td><td class="summary">
347       <table width="100%" cellpadding="0" cellspacing="0" border="0">
348         <tr>
349           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#parseliteral" class="summary-sig-name">parseliteral</a>()</span><br />
350       ##     &gt;&gt;&gt; sequence = [&quot;&lt;html&gt;&lt;body&gt;&quot;, &quot;text&lt;/bo&quot;, &quot;dy&gt;&lt;/html&gt;&quot;]
351 ##     &gt;&gt;&gt; element = ElementTree.fromstringlist(sequence)
352 ##     &gt;&gt;&gt; ElementTree.ElementTree(element).write(stdout())
353 ##     &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</td>
354           <td align="right" valign="top">
355             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parseliteral">source&nbsp;code</a></span>
356             
357           </td>
358         </tr>
359       </table>
360       
361     </td>
362   </tr>
363 <tr>
364     <td width="15%" align="right" valign="top" class="summary">
365       <span class="summary-type">&nbsp;</span>
366     </td><td class="summary">
367       <table width="100%" cellpadding="0" cellspacing="0" border="0">
368         <tr>
369           <td><span class="summary-sig"><a name="iterparse"></a><span class="summary-sig-name">iterparse</span>()</span><br />
370       Test iterparse interface.</td>
371           <td align="right" valign="top">
372             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#iterparse">source&nbsp;code</a></span>
373             
374           </td>
375         </tr>
376       </table>
377       
378     </td>
379   </tr>
380 <tr>
381     <td width="15%" align="right" valign="top" class="summary">
382       <span class="summary-type">&nbsp;</span>
383     </td><td class="summary">
384       <table width="100%" cellpadding="0" cellspacing="0" border="0">
385         <tr>
386           <td><span class="summary-sig"><a name="writefile"></a><span class="summary-sig-name">writefile</span>()</span><br />
387       ##     Test tag suppression
388 ##     &gt;&gt;&gt; elem.tag = None
389 ##     &gt;&gt;&gt; serialize(elem)
390 ##     'text&lt;subtag&gt;subtext&lt;/subtag&gt;'</td>
391           <td align="right" valign="top">
392             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#writefile">source&nbsp;code</a></span>
393             
394           </td>
395         </tr>
396       </table>
397       
398     </td>
399   </tr>
400 <tr>
401     <td width="15%" align="right" valign="top" class="summary">
402       <span class="summary-type">&nbsp;</span>
403     </td><td class="summary">
404       <table width="100%" cellpadding="0" cellspacing="0" border="0">
405         <tr>
406           <td><span class="summary-sig"><a name="writestring"></a><span class="summary-sig-name">writestring</span>()</span></td>
407           <td align="right" valign="top">
408             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#writestring">source&nbsp;code</a></span>
409             
410           </td>
411         </tr>
412       </table>
413       
414     </td>
415   </tr>
416 <tr>
417     <td width="15%" align="right" valign="top" class="summary">
418       <span class="summary-type">&nbsp;</span>
419     </td><td class="summary">
420       <table width="100%" cellpadding="0" cellspacing="0" border="0">
421         <tr>
422           <td><span class="summary-sig"><a name="encoding"></a><span class="summary-sig-name">encoding</span>()</span><br />
423       Test encoding issues.</td>
424           <td align="right" valign="top">
425             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#encoding">source&nbsp;code</a></span>
426             
427           </td>
428         </tr>
429       </table>
430       
431     </td>
432   </tr>
433 <tr>
434     <td width="15%" align="right" valign="top" class="summary">
435       <span class="summary-type">&nbsp;</span>
436     </td><td class="summary">
437       <table width="100%" cellpadding="0" cellspacing="0" border="0">
438         <tr>
439           <td><span class="summary-sig"><a name="iterators"></a><span class="summary-sig-name">iterators</span>()</span><br />
440       Test iterators.</td>
441           <td align="right" valign="top">
442             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#iterators">source&nbsp;code</a></span>
443             
444           </td>
445         </tr>
446       </table>
447       
448     </td>
449   </tr>
450 <tr>
451     <td width="15%" align="right" valign="top" class="summary">
452       <span class="summary-type">&nbsp;</span>
453     </td><td class="summary">
454       <table width="100%" cellpadding="0" cellspacing="0" border="0">
455         <tr>
456           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#namespace" class="summary-sig-name">namespace</a>()</span><br />
457       Test namespace issues.</td>
458           <td align="right" valign="top">
459             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#namespace">source&nbsp;code</a></span>
460             
461           </td>
462         </tr>
463       </table>
464       
465     </td>
466   </tr>
467 <tr>
468     <td width="15%" align="right" valign="top" class="summary">
469       <span class="summary-type">&nbsp;</span>
470     </td><td class="summary">
471       <table width="100%" cellpadding="0" cellspacing="0" border="0">
472         <tr>
473           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#qname" class="summary-sig-name">qname</a>()</span><br />
474       Test QName handling.</td>
475           <td align="right" valign="top">
476             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#qname">source&nbsp;code</a></span>
477             
478           </td>
479         </tr>
480       </table>
481       
482     </td>
483   </tr>
484 <tr>
485     <td width="15%" align="right" valign="top" class="summary">
486       <span class="summary-type">&nbsp;</span>
487     </td><td class="summary">
488       <table width="100%" cellpadding="0" cellspacing="0" border="0">
489         <tr>
490           <td><span class="summary-sig"><a name="xpath_tokenizer"></a><span class="summary-sig-name">xpath_tokenizer</span>(<span class="summary-sig-arg">p</span>)</span><br />
491       Test the XPath tokenizer.</td>
492           <td align="right" valign="top">
493             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xpath_tokenizer">source&nbsp;code</a></span>
494             
495           </td>
496         </tr>
497       </table>
498       
499     </td>
500   </tr>
501 <tr>
502     <td width="15%" align="right" valign="top" class="summary">
503       <span class="summary-type">&nbsp;</span>
504     </td><td class="summary">
505       <table width="100%" cellpadding="0" cellspacing="0" border="0">
506         <tr>
507           <td><span class="summary-sig"><a name="xinclude_loader"></a><span class="summary-sig-name">xinclude_loader</span>(<span class="summary-sig-arg">href</span>,
508         <span class="summary-sig-arg">parse</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code></span>,
509         <span class="summary-sig-arg">encoding</span>=<span class="summary-sig-default">None</span>)</span></td>
510           <td align="right" valign="top">
511             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude_loader">source&nbsp;code</a></span>
512             
513           </td>
514         </tr>
515       </table>
516       
517     </td>
518   </tr>
519 <tr>
520     <td width="15%" align="right" valign="top" class="summary">
521       <span class="summary-type">&nbsp;</span>
522     </td><td class="summary">
523       <table width="100%" cellpadding="0" cellspacing="0" border="0">
524         <tr>
525           <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#xinclude" class="summary-sig-name">xinclude</a>()</span><br />
526       Basic inclusion example (XInclude C.1)</td>
527           <td align="right" valign="top">
528             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude">source&nbsp;code</a></span>
529             
530           </td>
531         </tr>
532       </table>
533       
534     </td>
535   </tr>
536 <tr>
537     <td width="15%" align="right" valign="top" class="summary">
538       <span class="summary-type">&nbsp;</span>
539     </td><td class="summary">
540       <table width="100%" cellpadding="0" cellspacing="0" border="0">
541         <tr>
542           <td><span class="summary-sig"><a name="xinclude_default"></a><span class="summary-sig-name">xinclude_default</span>()</span></td>
543           <td align="right" valign="top">
544             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude_default">source&nbsp;code</a></span>
545             
546           </td>
547         </tr>
548       </table>
549       
550     </td>
551   </tr>
552 <tr>
553     <td width="15%" align="right" valign="top" class="summary">
554       <span class="summary-type">&nbsp;</span>
555     </td><td class="summary">
556       <table width="100%" cellpadding="0" cellspacing="0" border="0">
557         <tr>
558           <td><span class="summary-sig"><a name="bug_xmltoolkit25"></a><span class="summary-sig-name">bug_xmltoolkit25</span>()</span><br />
559       typo in ElementTree.findtext</td>
560           <td align="right" valign="top">
561             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bug_xmltoolkit25">source&nbsp;code</a></span>
562             
563           </td>
564         </tr>
565       </table>
566       
567     </td>
568   </tr>
569 <tr>
570     <td width="15%" align="right" valign="top" class="summary">
571       <span class="summary-type">&nbsp;</span>
572     </td><td class="summary">
573       <table width="100%" cellpadding="0" cellspacing="0" border="0">
574         <tr>
575           <td><span class="summary-sig"><a name="bug_xmltoolkit28"></a><span class="summary-sig-name">bug_xmltoolkit28</span>()</span><br />
576       .//tag causes exceptions</td>
577           <td align="right" valign="top">
578             <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bug_xmltoolkit28">source&nbsp;code</a></span>
579             
580           </td>
581         </tr>
582       </table>
583       
584     </td>
585   </tr>
586 </table>
587 <!-- ==================== VARIABLES ==================== -->
588 <a name="section-Variables"></a>
589 <table class="summary" border="1" cellpadding="3"
590        cellspacing="0" width="100%" bgcolor="white">
591 <tr bgcolor="#70b0f0" class="table-header">
592   <td colspan="2" class="table-header">
593     <table border="0" cellpadding="0" cellspacing="0" width="100%">
594       <tr valign="top">
595         <td align="left"><span class="table-header">Variables</span></td>
596         <td align="right" valign="top"
597          ><span class="options">[<a href="#section-Variables"
598          class="privatelink" onclick="toggle_private();"
599          >hide private</a>]</span></td>
600       </tr>
601     </table>
602   </td>
603 </tr>
604 <tr>
605     <td width="15%" align="right" valign="top" class="summary">
606       <span class="summary-type">&nbsp;</span>
607     </td><td class="summary">
608         <a href="lxml.tests.selftest-module.html#SAMPLE_XML" class="summary-name">SAMPLE_XML</a> = <code title="ElementTree.XML(&quot;&quot;&quot;
609 &lt;body&gt;
610   &lt;tag class='a'&gt;text&lt;/tag&gt;
611   &lt;tag class='b' /&gt;
612    &lt;section&gt;
613     &lt;tag class='b' id='inner'&gt;subtext&lt;/tag&gt;
614    &lt;/section&gt;
615 &lt;/body&gt;
616 ...">ElementTree.XML(<code class="variable-ellipsis">...</code></code>
617     </td>
618   </tr>
619 <tr>
620     <td width="15%" align="right" valign="top" class="summary">
621       <span class="summary-type">&nbsp;</span>
622     </td><td class="summary">
623         <a href="lxml.tests.selftest-module.html#ENTITY_XML" class="summary-name">ENTITY_XML</a> = <code title="'''&lt;!DOCTYPE points [
624 &lt;!ENTITY % user-entities SYSTEM \'user-entities.xml\'&gt;
625 %user-entities;
626 ]&gt;
627 &lt;document&gt;&amp;entity;&lt;/document&gt;
628 '''"><code class="variable-quote">'</code><code class="variable-string">&lt;!DOCTYPE points [\n&lt;!ENTITY % user-entities SYS</code><code class="variable-ellipsis">...</code></code>
629     </td>
630   </tr>
631 <tr>
632     <td width="15%" align="right" valign="top" class="summary">
633       <span class="summary-type">&nbsp;</span>
634     </td><td class="summary">
635         <a href="lxml.tests.selftest-module.html#XINCLUDE" class="summary-name">XINCLUDE</a> = <code title="{'C1.xml': '''&lt;?xml version=\'1.0\'?&gt;
636 &lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;
637   &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;
638   &lt;xi:include href=&quot;disclaimer.xml&quot;/&gt;
639 &lt;/document&gt;
640 ''',
641  'C2.xml': '''&lt;?xml version=\'1.0\'?&gt;
642 &lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;
643 ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">C1.xml</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">&lt;?xml version=\'1.0\'?&gt;\n&lt;document xmln</code><code class="variable-ellipsis">...</code></code>
644     </td>
645   </tr>
646 <tr>
647     <td width="15%" align="right" valign="top" class="summary">
648       <span class="summary-type">&nbsp;</span>
649     </td><td class="summary">
650         <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml.tests'"><code class="variable-quote">'</code><code class="variable-string">lxml.tests</code><code class="variable-quote">'</code></code>
651     </td>
652   </tr>
653 </table>
654 <!-- ==================== FUNCTION DETAILS ==================== -->
655 <a name="section-FunctionDetails"></a>
656 <table class="details" border="1" cellpadding="3"
657        cellspacing="0" width="100%" bgcolor="white">
658 <tr bgcolor="#70b0f0" class="table-header">
659   <td colspan="2" class="table-header">
660     <table border="0" cellpadding="0" cellspacing="0" width="100%">
661       <tr valign="top">
662         <td align="left"><span class="table-header">Function Details</span></td>
663         <td align="right" valign="top"
664          ><span class="options">[<a href="#section-FunctionDetails"
665          class="privatelink" onclick="toggle_private();"
666          >hide private</a>]</span></td>
667       </tr>
668     </table>
669   </td>
670 </tr>
671 </table>
672 <a name="find"></a>
673 <div>
674 <table class="details" border="1" cellpadding="3"
675        cellspacing="0" width="100%" bgcolor="white">
676 <tr><td>
677   <table width="100%" cellpadding="0" cellspacing="0" border="0">
678   <tr valign="top"><td>
679   <h3 class="epydoc"><span class="sig"><span class="sig-name">find</span>()</span>
680   </h3>
681   </td><td align="right" valign="top"
682     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#find">source&nbsp;code</a></span>&nbsp;
683     </td>
684   </tr></table>
685   
686   <p>Test find methods (including xpath syntax).</p>
687 <pre class="py-doctest">
688 <span class="py-prompt">&gt;&gt;&gt; </span>elem = SAMPLE_XML
689 <span class="py-prompt">&gt;&gt;&gt; </span>elem.find(<span class="py-string">&quot;tag&quot;</span>).tag
690 <span class="py-output">'tag'</span>
691 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(elem).find(<span class="py-string">&quot;tag&quot;</span>).tag
692 <span class="py-output">'tag'</span>
693 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.find(<span class="py-string">&quot;section/tag&quot;</span>).tag
694 <span class="py-output">'tag'</span>
695 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(elem).find(<span class="py-string">&quot;section/tag&quot;</span>).tag
696 <span class="py-output">'tag'</span>
697 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;tag&quot;</span>)
698 <span class="py-output">'text'</span>
699 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;tog&quot;</span>)
700 <span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;tog&quot;</span>, <span class="py-string">&quot;default&quot;</span>)
701 <span class="py-output">'default'</span>
702 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(elem).findtext(<span class="py-string">&quot;tag&quot;</span>)
703 <span class="py-output">'text'</span>
704 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;section/tag&quot;</span>)
705 <span class="py-output">'subtext'</span>
706 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(elem).findtext(<span class="py-string">&quot;section/tag&quot;</span>)
707 <span class="py-output">'subtext'</span>
708 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;tag&quot;</span>))
709 <span class="py-output">['tag', 'tag']</span>
710 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*&quot;</span>))
711 <span class="py-output">['tag', 'tag', 'section']</span>
712 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag&quot;</span>))
713 <span class="py-output">['tag', 'tag', 'tag']</span>
714 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section/tag&quot;</span>))
715 <span class="py-output">['tag']</span>
716 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section//tag&quot;</span>))
717 <span class="py-output">['tag']</span>
718 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section/*&quot;</span>))
719 <span class="py-output">['tag']</span>
720 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section//*&quot;</span>))
721 <span class="py-output">['tag']</span>
722 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section/.//*&quot;</span>))
723 <span class="py-output">['tag']</span>
724 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*/*&quot;</span>))
725 <span class="py-output">['tag']</span>
726 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*//*&quot;</span>))
727 <span class="py-output">['tag']</span>
728 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*/tag&quot;</span>))
729 <span class="py-output">['tag']</span>
730 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*/./tag&quot;</span>))
731 <span class="py-output">['tag']</span>
732 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;./tag&quot;</span>))
733 <span class="py-output">['tag', 'tag']</span>
734 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag&quot;</span>))
735 <span class="py-output">['tag', 'tag', 'tag']</span>
736 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;././tag&quot;</span>))
737 <span class="py-output">['tag', 'tag']</span>
738 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag[@class]&quot;</span>))
739 <span class="py-output">['tag', 'tag', 'tag']</span>
740 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag[@class='a']&quot;</span>))
741 <span class="py-output">['tag']</span>
742 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag[@class='b']&quot;</span>))
743 <span class="py-output">['tag', 'tag']</span>
744 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//tag[@id]&quot;</span>))
745 <span class="py-output">['tag']</span>
746 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//section[tag]&quot;</span>))
747 <span class="py-output">['section']</span>
748 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;.//section[element]&quot;</span>))
749 <span class="py-output">[]</span>
750 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;../tag&quot;</span>))
751 <span class="py-output">[]</span>
752 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;section/../tag&quot;</span>))
753 <span class="py-output">['tag', 'tag']</span>
754 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(ElementTree.ElementTree(elem).findall(<span class="py-string">&quot;./tag&quot;</span>))
755 <span class="py-output">['tag', 'tag']</span></pre>
756 <p>FIXME: ET's Path module handles this case incorrectly; this gives
757 a warning in 1.3, and the behaviour will be modified in 1.4.</p>
758 <pre class="py-doctest">
759 <span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(ElementTree.ElementTree(elem).findall(<span class="py-string">&quot;/tag&quot;</span>))
760 <span class="py-output">['tag', 'tag']</span></pre>
761   <dl class="fields">
762   </dl>
763 </td></tr></table>
764 </div>
765 <a name="bad_find"></a>
766 <div>
767 <table class="details" border="1" cellpadding="3"
768        cellspacing="0" width="100%" bgcolor="white">
769 <tr><td>
770   <table width="100%" cellpadding="0" cellspacing="0" border="0">
771   <tr valign="top"><td>
772   <h3 class="epydoc"><span class="sig"><span class="sig-name">bad_find</span>()</span>
773   </h3>
774   </td><td align="right" valign="top"
775     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bad_find">source&nbsp;code</a></span>&nbsp;
776     </td>
777   </tr></table>
778   
779   <p>Check bad or unsupported path expressions.</p>
780 <pre class="py-doctest">
781 <span class="py-prompt">&gt;&gt;&gt; </span>elem = SAMPLE_XML
782 <span class="py-prompt">&gt;&gt;&gt; </span>elem.findall(<span class="py-string">&quot;/tag&quot;</span>)
783 <span class="py-except">Traceback (most recent call last):</span>
784 <span class="py-except">SyntaxError: cannot use absolute path on element</span></pre>
785 <p># this is supported in ET 1.3:
786 #&gt;&gt;&gt; elem.findall(&quot;section//&quot;)
787 #Traceback (most recent call last):
788 #SyntaxError: invalid path</p>
789   <dl class="fields">
790   </dl>
791 </td></tr></table>
792 </div>
793 <a name="parsefile"></a>
794 <div>
795 <table class="details" border="1" cellpadding="3"
796        cellspacing="0" width="100%" bgcolor="white">
797 <tr><td>
798   <table width="100%" cellpadding="0" cellspacing="0" border="0">
799   <tr valign="top"><td>
800   <h3 class="epydoc"><span class="sig"><span class="sig-name">parsefile</span>()</span>
801   </h3>
802   </td><td align="right" valign="top"
803     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parsefile">source&nbsp;code</a></span>&nbsp;
804     </td>
805   </tr></table>
806   
807   <blockquote>
808 <p>Test parsing from file.</p>
809 <pre class="py-doctest">
810 <span class="py-prompt">&gt;&gt;&gt; </span>tree = ElementTree.parse(<span class="py-string">&quot;samples/simple.xml&quot;</span>)
811 <span class="py-prompt">&gt;&gt;&gt; </span>normalize_crlf(tree)
812 <span class="py-prompt">&gt;&gt;&gt; </span>tree.write(stdout())
813 <span class="py-output">&lt;root&gt;</span>
814 <span class="py-output">   &lt;element key=&quot;value&quot;&gt;text&lt;/element&gt;</span>
815 <span class="py-output">   &lt;element&gt;text&lt;/element&gt;tail</span>
816 <span class="py-output">   &lt;empty-element/&gt;</span>
817 <span class="py-output">&lt;/root&gt;</span>
818 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>tree = ElementTree.parse(<span class="py-string">&quot;samples/simple-ns.xml&quot;</span>)
819 <span class="py-prompt">&gt;&gt;&gt; </span>normalize_crlf(tree)
820 <span class="py-prompt">&gt;&gt;&gt; </span>tree.write(stdout())
821 <span class="py-output">&lt;root xmlns=&quot;http://namespace/&quot;&gt;</span>
822 <span class="py-output">   &lt;element key=&quot;value&quot;&gt;text&lt;/element&gt;</span>
823 <span class="py-output">   &lt;element&gt;text&lt;/element&gt;tail</span>
824 <span class="py-output">   &lt;empty-element/&gt;</span>
825 <span class="py-output">&lt;/root&gt;</span></pre>
826 </blockquote>
827 <p>##     &lt;ns0:root xmlns:ns0=&quot;http://namespace/&quot;&gt;
828 ##        &lt;ns0:element key=&quot;value&quot;&gt;text&lt;/ns0:element&gt;
829 ##        &lt;ns0:element&gt;text&lt;/ns0:element&gt;tail
830 ##        &lt;ns0:empty-element/&gt;
831 ##     &lt;/ns0:root&gt;</p>
832   <dl class="fields">
833   </dl>
834 </td></tr></table>
835 </div>
836 <a name="parseliteral"></a>
837 <div>
838 <table class="details" border="1" cellpadding="3"
839        cellspacing="0" width="100%" bgcolor="white">
840 <tr><td>
841   <table width="100%" cellpadding="0" cellspacing="0" border="0">
842   <tr valign="top"><td>
843   <h3 class="epydoc"><span class="sig"><span class="sig-name">parseliteral</span>()</span>
844   </h3>
845   </td><td align="right" valign="top"
846     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parseliteral">source&nbsp;code</a></span>&nbsp;
847     </td>
848   </tr></table>
849   
850   <blockquote>
851 <pre class="py-doctest">
852 <span class="py-prompt">&gt;&gt;&gt; </span>element = ElementTree.XML(<span class="py-string">&quot;&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;&quot;</span>)
853 <span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(element).write(stdout())
854 <span class="py-output">&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</span>
855 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>element = ElementTree.fromstring(<span class="py-string">&quot;&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;&quot;</span>)
856 <span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(element).write(stdout())
857 <span class="py-output">&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</span></pre>
858 </blockquote>
859 <p>##     &gt;&gt;&gt; sequence = [&quot;&lt;html&gt;&lt;body&gt;&quot;, &quot;text&lt;/bo&quot;, &quot;dy&gt;&lt;/html&gt;&quot;]
860 ##     &gt;&gt;&gt; element = ElementTree.fromstringlist(sequence)
861 ##     &gt;&gt;&gt; ElementTree.ElementTree(element).write(stdout())
862 ##     &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</p>
863 <blockquote>
864 <pre class="py-doctest">
865 <span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(repr(ElementTree.tostring(element)).lstrip(<span class="py-string">'b'</span>))
866 <span class="py-output">'&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;'</span></pre>
867 </blockquote>
868 <p># looks different in lxml
869 #    &gt;&gt;&gt; print(ElementTree.tostring(element, &quot;ascii&quot;))
870 #    &lt;?xml version='1.0' encoding='ascii'?&gt;
871 #    &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</p>
872 <blockquote>
873 <pre class="py-doctest">
874 <span class="py-prompt">&gt;&gt;&gt; </span>_, ids = ElementTree.XMLID(<span class="py-string">&quot;&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;&quot;</span>)
875 <span class="py-prompt">&gt;&gt;&gt; </span>len(ids)
876 <span class="py-output">0</span>
877 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>_, ids = ElementTree.XMLID(<span class="py-string">&quot;&lt;html&gt;&lt;body id='body'&gt;text&lt;/body&gt;&lt;/html&gt;&quot;</span>)
878 <span class="py-prompt">&gt;&gt;&gt; </span>len(ids)
879 <span class="py-output">1</span>
880 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ids[<span class="py-string">&quot;body&quot;</span>].tag
881 <span class="py-output">'body'</span></pre>
882 </blockquote>
883   <dl class="fields">
884   </dl>
885 </td></tr></table>
886 </div>
887 <a name="namespace"></a>
888 <div>
889 <table class="details" border="1" cellpadding="3"
890        cellspacing="0" width="100%" bgcolor="white">
891 <tr><td>
892   <table width="100%" cellpadding="0" cellspacing="0" border="0">
893   <tr valign="top"><td>
894   <h3 class="epydoc"><span class="sig"><span class="sig-name">namespace</span>()</span>
895   </h3>
896   </td><td align="right" valign="top"
897     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#namespace">source&nbsp;code</a></span>&nbsp;
898     </td>
899   </tr></table>
900   
901   <p>Test namespace issues.</p>
902 <ol class="rst-arabic simple">
903 <li>xml namespace</li>
904 </ol>
905 <pre class="py-doctest">
906 <span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.XML(<span class="py-string">&quot;&lt;tag xml:lang='en' /&gt;&quot;</span>)
907 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.1</span>
908 <span class="py-output">'&lt;tag xml:lang=&quot;en&quot;/&gt;'</span></pre>
909 <ol class="rst-arabic simple" start="2">
910 <li>other &quot;well-known&quot; namespaces</li>
911 </ol>
912 <pre class="py-doctest">
913 <span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.XML(<span class="py-string">&quot;&lt;rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' /&gt;&quot;</span>)
914 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.1</span>
915 <span class="py-output">'&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;/&gt;'</span></pre>
916 <pre class="py-doctest">
917 <span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.XML(<span class="py-string">&quot;&lt;html:html xmlns:html='http://www.w3.org/1999/xhtml' /&gt;&quot;</span>)
918 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.2</span>
919 <span class="py-output">'&lt;html:html xmlns:html=&quot;http://www.w3.org/1999/xhtml&quot;/&gt;'</span></pre>
920 <pre class="py-doctest">
921 <span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.XML(<span class="py-string">&quot;&lt;soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope' /&gt;&quot;</span>)
922 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.3</span>
923 <span class="py-output">'&lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope&quot;/&gt;'</span></pre>
924 <ol class="rst-arabic simple" start="3">
925 <li>unknown namespaces</li>
926 </ol>
927   <dl class="fields">
928   </dl>
929 </td></tr></table>
930 </div>
931 <a name="qname"></a>
932 <div>
933 <table class="details" border="1" cellpadding="3"
934        cellspacing="0" width="100%" bgcolor="white">
935 <tr><td>
936   <table width="100%" cellpadding="0" cellspacing="0" border="0">
937   <tr valign="top"><td>
938   <h3 class="epydoc"><span class="sig"><span class="sig-name">qname</span>()</span>
939   </h3>
940   </td><td align="right" valign="top"
941     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#qname">source&nbsp;code</a></span>&nbsp;
942     </td>
943   </tr></table>
944   
945   <blockquote>
946 <p>Test QName handling.</p>
947 <ol class="rst-arabic simple">
948 <li>decorated tags</li>
949 </ol>
950 <pre class="py-doctest">
951 <span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.Element(<span class="py-string">&quot;{uri}tag&quot;</span>)
952 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.1</span>
953 <span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span>
954 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.Element(ElementTree.QName(<span class="py-string">&quot;{uri}tag&quot;</span>))
955 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.2</span>
956 <span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span>
957 <span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.Element(ElementTree.QName(<span class="py-string">&quot;uri&quot;</span>, <span class="py-string">&quot;tag&quot;</span>))
958 <span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.3</span>
959 <span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span></pre>
960 </blockquote>
961 <p># ns/attribute order ...</p>
962 <p>##     2) decorated attributes</p>
963 <p>##     &gt;&gt;&gt; elem.clear()
964 ##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = &quot;value&quot;
965 ##     &gt;&gt;&gt; serialize(elem) # 2.1
966 ##     '&lt;ns0:tag ns0:key=&quot;value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
967 <p>##     &gt;&gt;&gt; elem.clear()
968 ##     &gt;&gt;&gt; elem.attrib[ElementTree.QName(&quot;{uri}key&quot;)] = &quot;value&quot;
969 ##     &gt;&gt;&gt; serialize(elem) # 2.2
970 ##     '&lt;ns0:tag ns0:key=&quot;value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
971 <p>##     3) decorated values are not converted by default, but the
972 ##        QName wrapper can be used for values</p>
973 <p>##     &gt;&gt;&gt; elem.clear()
974 ##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = &quot;{uri}value&quot;
975 ##     &gt;&gt;&gt; serialize(elem) # 3.1
976 ##     '&lt;ns0:tag ns0:key=&quot;{uri}value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
977 <p>##     &gt;&gt;&gt; elem.clear()
978 ##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = ElementTree.QName(&quot;{uri}value&quot;)
979 ##     &gt;&gt;&gt; serialize(elem) # 3.2
980 ##     '&lt;ns0:tag ns0:key=&quot;ns0:value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
981 <p>##     &gt;&gt;&gt; elem.clear()
982 ##     &gt;&gt;&gt; subelem = ElementTree.Element(&quot;tag&quot;)
983 ##     &gt;&gt;&gt; subelem.attrib[&quot;{uri1}key&quot;] = ElementTree.QName(&quot;{uri2}value&quot;)
984 ##     &gt;&gt;&gt; elem.append(subelem)
985 ##     &gt;&gt;&gt; elem.append(subelem)
986 ##     &gt;&gt;&gt; serialize(elem) # 3.3
987 ##     '&lt;ns0:tag xmlns:ns0=&quot;uri&quot;&gt;&lt;tag ns1:key=&quot;ns2:value&quot; xmlns:ns1=&quot;uri1&quot; xmlns:ns2=&quot;uri2&quot;/&gt;&lt;tag ns1:key=&quot;ns2:value&quot; xmlns:ns1=&quot;uri1&quot; xmlns:ns2=&quot;uri2&quot;/&gt;&lt;/ns0:tag&gt;'</p>
988   <dl class="fields">
989   </dl>
990 </td></tr></table>
991 </div>
992 <a name="xinclude"></a>
993 <div>
994 <table class="details" border="1" cellpadding="3"
995        cellspacing="0" width="100%" bgcolor="white">
996 <tr><td>
997   <table width="100%" cellpadding="0" cellspacing="0" border="0">
998   <tr valign="top"><td>
999   <h3 class="epydoc"><span class="sig"><span class="sig-name">xinclude</span>()</span>
1000   </h3>
1001   </td><td align="right" valign="top"
1002     ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude">source&nbsp;code</a></span>&nbsp;
1003     </td>
1004   </tr></table>
1005   
1006   <blockquote>
1007 <p>Basic inclusion example (XInclude C.1)</p>
1008 <pre class="py-doctest">
1009 <span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C1.xml&quot;</span>)
1010 <span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
1011 <span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C1</span>
1012 <span class="py-output">&lt;document&gt;</span>
1013 <span class="py-output">  &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;</span>
1014 <span class="py-output">  &lt;disclaimer&gt;</span>
1015 <span class="py-output">  &lt;p&gt;The opinions represented herein represent those of the individual</span>
1016 <span class="py-output">  and should not be interpreted as official policy endorsed by this</span>
1017 <span class="py-output">  organization.&lt;/p&gt;</span>
1018 <span class="py-output">&lt;/disclaimer&gt;</span>
1019 <span class="py-output">&lt;/document&gt;</span></pre>
1020 <p>Textual inclusion example (XInclude C.2)</p>
1021 <pre class="py-doctest">
1022 <span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C2.xml&quot;</span>)
1023 <span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
1024 <span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C2</span>
1025 <span class="py-output">&lt;document&gt;</span>
1026 <span class="py-output">  &lt;p&gt;This document has been accessed</span>
1027 <span class="py-output">  324387 times.&lt;/p&gt;</span>
1028 <span class="py-output">&lt;/document&gt;</span></pre>
1029 <p>Textual inclusion of XML example (XInclude C.3)</p>
1030 <pre class="py-doctest">
1031 <span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C3.xml&quot;</span>)
1032 <span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
1033 <span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C3</span>
1034 <span class="py-output">&lt;document&gt;</span>
1035 <span class="py-output">  &lt;p&gt;The following is the source of the &quot;data.xml&quot; resource:&lt;/p&gt;</span>
1036 <span class="py-output">  &lt;example&gt;&amp;lt;?xml version='1.0'?&amp;gt;</span>
1037 <span class="py-output">&amp;lt;data&amp;gt;</span>
1038 <span class="py-output">  &amp;lt;item&amp;gt;&amp;lt;![CDATA[Brooks &amp;amp; Shields]]&amp;gt;&amp;lt;/item&amp;gt;</span>
1039 <span class="py-output">&amp;lt;/data&amp;gt;</span>
1040 <span class="py-output">&lt;/example&gt;</span>
1041 <span class="py-output">&lt;/document&gt;</span></pre>
1042 </blockquote>
1043 <p>##     Fallback example (XInclude C.5)
1044 ##     Note! Fallback support is not yet implemented</p>
1045 <p>##     &gt;&gt;&gt; document = xinclude_loader(&quot;C5.xml&quot;)
1046 ##     &gt;&gt;&gt; ElementInclude.include(document, xinclude_loader)
1047 ##     Traceback (most recent call last):
1048 ##     IOError: resource not found
1049 ##     &gt;&gt;&gt; # print(serialize(document)) # C5</p>
1050   <dl class="fields">
1051   </dl>
1052 </td></tr></table>
1053 </div>
1054 <br />
1055 <!-- ==================== VARIABLES DETAILS ==================== -->
1056 <a name="section-VariablesDetails"></a>
1057 <table class="details" border="1" cellpadding="3"
1058        cellspacing="0" width="100%" bgcolor="white">
1059 <tr bgcolor="#70b0f0" class="table-header">
1060   <td colspan="2" class="table-header">
1061     <table border="0" cellpadding="0" cellspacing="0" width="100%">
1062       <tr valign="top">
1063         <td align="left"><span class="table-header">Variables Details</span></td>
1064         <td align="right" valign="top"
1065          ><span class="options">[<a href="#section-VariablesDetails"
1066          class="privatelink" onclick="toggle_private();"
1067          >hide private</a>]</span></td>
1068       </tr>
1069     </table>
1070   </td>
1071 </tr>
1072 </table>
1073 <a name="SAMPLE_XML"></a>
1074 <div>
1075 <table class="details" border="1" cellpadding="3"
1076        cellspacing="0" width="100%" bgcolor="white">
1077 <tr><td>
1078   <h3 class="epydoc">SAMPLE_XML</h3>
1079   
1080   <dl class="fields">
1081   </dl>
1082   <dl class="fields">
1083     <dt>Value:</dt>
1084       <dd><table><tr><td><pre class="variable">
1085 ElementTree.XML(&quot;&quot;&quot;
1086 &lt;body&gt;
1087   &lt;tag class='a'&gt;text&lt;/tag&gt;
1088   &lt;tag class='b' /&gt;
1089    &lt;section&gt;
1090     &lt;tag class='b' id='inner'&gt;subtext&lt;/tag&gt;
1091    &lt;/section&gt;
1092 &lt;/body&gt;
1093 <code class="variable-ellipsis">...</code>
1094 </pre></td></tr></table>
1095 </dd>
1096   </dl>
1097 </td></tr></table>
1098 </div>
1099 <a name="ENTITY_XML"></a>
1100 <div>
1101 <table class="details" border="1" cellpadding="3"
1102        cellspacing="0" width="100%" bgcolor="white">
1103 <tr><td>
1104   <h3 class="epydoc">ENTITY_XML</h3>
1105   
1106   <dl class="fields">
1107   </dl>
1108   <dl class="fields">
1109     <dt>Value:</dt>
1110       <dd><table><tr><td><pre class="variable">
1111 <code class="variable-quote">'''</code><code class="variable-string">&lt;!DOCTYPE points [</code>
1112 <code class="variable-string">&lt;!ENTITY % user-entities SYSTEM \'user-entities.xml\'&gt;</code>
1113 <code class="variable-string">%user-entities;</code>
1114 <code class="variable-string">]&gt;</code>
1115 <code class="variable-string">&lt;document&gt;&amp;entity;&lt;/document&gt;</code>
1116 <code class="variable-string"></code><code class="variable-quote">'''</code>
1117 </pre></td></tr></table>
1118 </dd>
1119   </dl>
1120 </td></tr></table>
1121 </div>
1122 <a name="XINCLUDE"></a>
1123 <div>
1124 <table class="details" border="1" cellpadding="3"
1125        cellspacing="0" width="100%" bgcolor="white">
1126 <tr><td>
1127   <h3 class="epydoc">XINCLUDE</h3>
1128   
1129   <dl class="fields">
1130   </dl>
1131   <dl class="fields">
1132     <dt>Value:</dt>
1133       <dd><table><tr><td><pre class="variable">
1134 <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">C1.xml</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'''</code><code class="variable-string">&lt;?xml version=\'1.0\'?&gt;</code>
1135 <code class="variable-string">&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</code>
1136 <code class="variable-string">  &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;</code>
1137 <code class="variable-string">  &lt;xi:include href=&quot;disclaimer.xml&quot;/&gt;</code>
1138 <code class="variable-string">&lt;/document&gt;</code>
1139 <code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
1140  <code class="variable-quote">'</code><code class="variable-string">C2.xml</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'''</code><code class="variable-string">&lt;?xml version=\'1.0\'?&gt;</code>
1141 <code class="variable-string">&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</code>
1142 <code class="variable-ellipsis">...</code>
1143 </pre></td></tr></table>
1144 </dd>
1145   </dl>
1146 </td></tr></table>
1147 </div>
1148 <br />
1149 <!-- ==================== NAVIGATION BAR ==================== -->
1150 <table class="navbar" border="0" width="100%" cellpadding="0"
1151        bgcolor="#a0c0ff" cellspacing="0">
1152   <tr valign="middle">
1153   <!-- Home link -->
1154       <th>&nbsp;&nbsp;&nbsp;<a
1155         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
1156
1157   <!-- Tree link -->
1158       <th>&nbsp;&nbsp;&nbsp;<a
1159         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
1160
1161   <!-- Index link -->
1162       <th>&nbsp;&nbsp;&nbsp;<a
1163         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
1164
1165   <!-- Help link -->
1166       <th>&nbsp;&nbsp;&nbsp;<a
1167         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
1168
1169   <!-- Project homepage -->
1170       <th class="navbar" align="right" width="100%">
1171         <table border="0" cellpadding="0" cellspacing="0">
1172           <tr><th class="navbar" align="center"
1173             ><a class="navbar" target="_top" href="/">lxml API</a></th>
1174           </tr></table></th>
1175   </tr>
1176 </table>
1177 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
1178   <tr>
1179     <td align="left" class="footer">
1180     Generated by Epydoc 3.0.1
1181     on Wed Jan 29 12:26:21 2020
1182     </td>
1183     <td align="right" class="footer">
1184       <a target="mainFrame" href="http://epydoc.sourceforge.net"
1185         >http://epydoc.sourceforge.net</a>
1186     </td>
1187   </tr>
1188 </table>
1189
1190 <script type="text/javascript">
1191   <!--
1192   // Private objects are initially displayed (because if
1193   // javascript is turned off then we want them to be
1194   // visible); but by default, we want to hide them.  So hide
1195   // them unless we have a cookie that says to show them.
1196   checkCookie();
1197   // -->
1198 </script>
1199 </body>
1200 </html>