Blob Blame History Raw
<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>lxml.tests.selftest</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="/">lxml API</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="lxml-module.html">Package&nbsp;lxml</a> ::
        <a href="lxml.tests-module.html">Package&nbsp;tests</a> ::
        Module&nbsp;selftest
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="lxml.tests.selftest-module.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== MODULE DESCRIPTION ==================== -->
<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>
<!-- ==================== FUNCTIONS ==================== -->
<a name="section-Functions"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Functions</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Functions"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="stdout"></a><span class="summary-sig-name">stdout</span>()</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#stdout">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#fix_compatibility">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="serialize"></a><span class="summary-sig-name">serialize</span>(<span class="summary-sig-arg">elem</span>,
        <span class="summary-sig-arg">**options</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#serialize">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#summarize">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#summarize_list">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#normalize_crlf">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_string">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_string_or_none">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_mapping">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_element">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#check_element_tree">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="interface"></a><span class="summary-sig-name">interface</span>()</span><br />
      Test element tree interface.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#interface">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="simpleops"></a><span class="summary-sig-name">simpleops</span>()</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#simpleops">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#find" class="summary-sig-name">find</a>()</span><br />
      Test find methods (including xpath syntax).</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#find">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#bad_find" class="summary-sig-name">bad_find</a>()</span><br />
      Check bad or unsupported path expressions.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bad_find">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#parsefile" class="summary-sig-name">parsefile</a>()</span><br />
      Test parsing from file.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parsefile">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#parseliteral" class="summary-sig-name">parseliteral</a>()</span><br />
      ##     &gt;&gt;&gt; sequence = [&quot;&lt;html&gt;&lt;body&gt;&quot;, &quot;text&lt;/bo&quot;, &quot;dy&gt;&lt;/html&gt;&quot;]
##     &gt;&gt;&gt; element = ElementTree.fromstringlist(sequence)
##     &gt;&gt;&gt; ElementTree.ElementTree(element).write(stdout())
##     &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parseliteral">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="iterparse"></a><span class="summary-sig-name">iterparse</span>()</span><br />
      Test iterparse interface.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#iterparse">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="writefile"></a><span class="summary-sig-name">writefile</span>()</span><br />
      ##     Test tag suppression
##     &gt;&gt;&gt; elem.tag = None
##     &gt;&gt;&gt; serialize(elem)
##     'text&lt;subtag&gt;subtext&lt;/subtag&gt;'</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#writefile">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="writestring"></a><span class="summary-sig-name">writestring</span>()</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#writestring">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="encoding"></a><span class="summary-sig-name">encoding</span>()</span><br />
      Test encoding issues.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#encoding">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="iterators"></a><span class="summary-sig-name">iterators</span>()</span><br />
      Test iterators.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#iterators">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#namespace" class="summary-sig-name">namespace</a>()</span><br />
      Test namespace issues.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#namespace">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#qname" class="summary-sig-name">qname</a>()</span><br />
      Test QName handling.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#qname">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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 />
      Test the XPath tokenizer.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xpath_tokenizer">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <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>,
        <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>,
        <span class="summary-sig-arg">encoding</span>=<span class="summary-sig-default">None</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude_loader">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lxml.tests.selftest-module.html#xinclude" class="summary-sig-name">xinclude</a>()</span><br />
      Basic inclusion example (XInclude C.1)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="xinclude_default"></a><span class="summary-sig-name">xinclude_default</span>()</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude_default">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="bug_xmltoolkit25"></a><span class="summary-sig-name">bug_xmltoolkit25</span>()</span><br />
      typo in ElementTree.findtext</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bug_xmltoolkit25">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="bug_xmltoolkit28"></a><span class="summary-sig-name">bug_xmltoolkit28</span>()</span><br />
      .//tag causes exceptions</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bug_xmltoolkit28">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<!-- ==================== VARIABLES ==================== -->
<a name="section-Variables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Variables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lxml.tests.selftest-module.html#SAMPLE_XML" class="summary-name">SAMPLE_XML</a> = <code title="ElementTree.XML(&quot;&quot;&quot;
&lt;body&gt;
  &lt;tag class='a'&gt;text&lt;/tag&gt;
  &lt;tag class='b' /&gt;
   &lt;section&gt;
    &lt;tag class='b' id='inner'&gt;subtext&lt;/tag&gt;
   &lt;/section&gt;
&lt;/body&gt;
...">ElementTree.XML(<code class="variable-ellipsis">...</code></code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lxml.tests.selftest-module.html#ENTITY_XML" class="summary-name">ENTITY_XML</a> = <code title="'''&lt;!DOCTYPE points [
&lt;!ENTITY % user-entities SYSTEM \'user-entities.xml\'&gt;
%user-entities;
]&gt;
&lt;document&gt;&amp;entity;&lt;/document&gt;
'''"><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>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lxml.tests.selftest-module.html#XINCLUDE" class="summary-name">XINCLUDE</a> = <code title="{'C1.xml': '''&lt;?xml version=\'1.0\'?&gt;
&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;
  &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;
  &lt;xi:include href=&quot;disclaimer.xml&quot;/&gt;
&lt;/document&gt;
''',
 'C2.xml': '''&lt;?xml version=\'1.0\'?&gt;
&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;
..."><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>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <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>
    </td>
  </tr>
</table>
<!-- ==================== FUNCTION DETAILS ==================== -->
<a name="section-FunctionDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Function Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-FunctionDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="find"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">find</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#find">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Test find methods (including xpath syntax).</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>elem = SAMPLE_XML
<span class="py-prompt">&gt;&gt;&gt; </span>elem.find(<span class="py-string">&quot;tag&quot;</span>).tag
<span class="py-output">'tag'</span>
<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
<span class="py-output">'tag'</span>
<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
<span class="py-output">'tag'</span>
<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
<span class="py-output">'tag'</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;tag&quot;</span>)
<span class="py-output">'text'</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;tog&quot;</span>)
<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>)
<span class="py-output">'default'</span>
<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>)
<span class="py-output">'text'</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>elem.findtext(<span class="py-string">&quot;section/tag&quot;</span>)
<span class="py-output">'subtext'</span>
<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>)
<span class="py-output">'subtext'</span>
<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>))
<span class="py-output">['tag', 'tag']</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*&quot;</span>))
<span class="py-output">['tag', 'tag', 'section']</span>
<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>))
<span class="py-output">['tag', 'tag', 'tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*/*&quot;</span>))
<span class="py-output">['tag']</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(elem.findall(<span class="py-string">&quot;*//*&quot;</span>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag', 'tag']</span>
<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>))
<span class="py-output">['tag', 'tag', 'tag']</span>
<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>))
<span class="py-output">['tag', 'tag']</span>
<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>))
<span class="py-output">['tag', 'tag', 'tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['tag', 'tag']</span>
<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>))
<span class="py-output">['tag']</span>
<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>))
<span class="py-output">['section']</span>
<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>))
<span class="py-output">[]</span>
<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>))
<span class="py-output">[]</span>
<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>))
<span class="py-output">['tag', 'tag']</span>
<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>))
<span class="py-output">['tag', 'tag']</span></pre>
<p>FIXME: ET's Path module handles this case incorrectly; this gives
a warning in 1.3, and the behaviour will be modified in 1.4.</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>summarize_list(ElementTree.ElementTree(elem).findall(<span class="py-string">&quot;/tag&quot;</span>))
<span class="py-output">['tag', 'tag']</span></pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="bad_find"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">bad_find</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#bad_find">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Check bad or unsupported path expressions.</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>elem = SAMPLE_XML
<span class="py-prompt">&gt;&gt;&gt; </span>elem.findall(<span class="py-string">&quot;/tag&quot;</span>)
<span class="py-except">Traceback (most recent call last):</span>
<span class="py-except">SyntaxError: cannot use absolute path on element</span></pre>
<p># this is supported in ET 1.3:
#&gt;&gt;&gt; elem.findall(&quot;section//&quot;)
#Traceback (most recent call last):
#SyntaxError: invalid path</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="parsefile"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">parsefile</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parsefile">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <blockquote>
<p>Test parsing from file.</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>tree = ElementTree.parse(<span class="py-string">&quot;samples/simple.xml&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>normalize_crlf(tree)
<span class="py-prompt">&gt;&gt;&gt; </span>tree.write(stdout())
<span class="py-output">&lt;root&gt;</span>
<span class="py-output">   &lt;element key=&quot;value&quot;&gt;text&lt;/element&gt;</span>
<span class="py-output">   &lt;element&gt;text&lt;/element&gt;tail</span>
<span class="py-output">   &lt;empty-element/&gt;</span>
<span class="py-output">&lt;/root&gt;</span>
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>normalize_crlf(tree)
<span class="py-prompt">&gt;&gt;&gt; </span>tree.write(stdout())
<span class="py-output">&lt;root xmlns=&quot;http://namespace/&quot;&gt;</span>
<span class="py-output">   &lt;element key=&quot;value&quot;&gt;text&lt;/element&gt;</span>
<span class="py-output">   &lt;element&gt;text&lt;/element&gt;tail</span>
<span class="py-output">   &lt;empty-element/&gt;</span>
<span class="py-output">&lt;/root&gt;</span></pre>
</blockquote>
<p>##     &lt;ns0:root xmlns:ns0=&quot;http://namespace/&quot;&gt;
##        &lt;ns0:element key=&quot;value&quot;&gt;text&lt;/ns0:element&gt;
##        &lt;ns0:element&gt;text&lt;/ns0:element&gt;tail
##        &lt;ns0:empty-element/&gt;
##     &lt;/ns0:root&gt;</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="parseliteral"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">parseliteral</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#parseliteral">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <blockquote>
<pre class="py-doctest">
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(element).write(stdout())
<span class="py-output">&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</span>
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>ElementTree.ElementTree(element).write(stdout())
<span class="py-output">&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</span></pre>
</blockquote>
<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;]
##     &gt;&gt;&gt; element = ElementTree.fromstringlist(sequence)
##     &gt;&gt;&gt; ElementTree.ElementTree(element).write(stdout())
##     &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</p>
<blockquote>
<pre class="py-doctest">
<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>))
<span class="py-output">'&lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;'</span></pre>
</blockquote>
<p># looks different in lxml
#    &gt;&gt;&gt; print(ElementTree.tostring(element, &quot;ascii&quot;))
#    &lt;?xml version='1.0' encoding='ascii'?&gt;
#    &lt;html&gt;&lt;body&gt;text&lt;/body&gt;&lt;/html&gt;</p>
<blockquote>
<pre class="py-doctest">
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>len(ids)
<span class="py-output">0</span>
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>len(ids)
<span class="py-output">1</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>ids[<span class="py-string">&quot;body&quot;</span>].tag
<span class="py-output">'body'</span></pre>
</blockquote>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="namespace"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">namespace</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#namespace">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Test namespace issues.</p>
<ol class="rst-arabic simple">
<li>xml namespace</li>
</ol>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.XML(<span class="py-string">&quot;&lt;tag xml:lang='en' /&gt;&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.1</span>
<span class="py-output">'&lt;tag xml:lang=&quot;en&quot;/&gt;'</span></pre>
<ol class="rst-arabic simple" start="2">
<li>other &quot;well-known&quot; namespaces</li>
</ol>
<pre class="py-doctest">
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.1</span>
<span class="py-output">'&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;/&gt;'</span></pre>
<pre class="py-doctest">
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.2</span>
<span class="py-output">'&lt;html:html xmlns:html=&quot;http://www.w3.org/1999/xhtml&quot;/&gt;'</span></pre>
<pre class="py-doctest">
<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>)
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 2.3</span>
<span class="py-output">'&lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope&quot;/&gt;'</span></pre>
<ol class="rst-arabic simple" start="3">
<li>unknown namespaces</li>
</ol>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="qname"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">qname</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#qname">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <blockquote>
<p>Test QName handling.</p>
<ol class="rst-arabic simple">
<li>decorated tags</li>
</ol>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>elem = ElementTree.Element(<span class="py-string">&quot;{uri}tag&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.1</span>
<span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span>
<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>))
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.2</span>
<span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span>
<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>))
<span class="py-prompt">&gt;&gt;&gt; </span>serialize(elem) <span class="py-comment"># 1.3</span>
<span class="py-output">'&lt;ns0:tag xmlns:ns0=&quot;uri&quot;/&gt;'</span></pre>
</blockquote>
<p># ns/attribute order ...</p>
<p>##     2) decorated attributes</p>
<p>##     &gt;&gt;&gt; elem.clear()
##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = &quot;value&quot;
##     &gt;&gt;&gt; serialize(elem) # 2.1
##     '&lt;ns0:tag ns0:key=&quot;value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
<p>##     &gt;&gt;&gt; elem.clear()
##     &gt;&gt;&gt; elem.attrib[ElementTree.QName(&quot;{uri}key&quot;)] = &quot;value&quot;
##     &gt;&gt;&gt; serialize(elem) # 2.2
##     '&lt;ns0:tag ns0:key=&quot;value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
<p>##     3) decorated values are not converted by default, but the
##        QName wrapper can be used for values</p>
<p>##     &gt;&gt;&gt; elem.clear()
##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = &quot;{uri}value&quot;
##     &gt;&gt;&gt; serialize(elem) # 3.1
##     '&lt;ns0:tag ns0:key=&quot;{uri}value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
<p>##     &gt;&gt;&gt; elem.clear()
##     &gt;&gt;&gt; elem.attrib[&quot;{uri}key&quot;] = ElementTree.QName(&quot;{uri}value&quot;)
##     &gt;&gt;&gt; serialize(elem) # 3.2
##     '&lt;ns0:tag ns0:key=&quot;ns0:value&quot; xmlns:ns0=&quot;uri&quot;/&gt;'</p>
<p>##     &gt;&gt;&gt; elem.clear()
##     &gt;&gt;&gt; subelem = ElementTree.Element(&quot;tag&quot;)
##     &gt;&gt;&gt; subelem.attrib[&quot;{uri1}key&quot;] = ElementTree.QName(&quot;{uri2}value&quot;)
##     &gt;&gt;&gt; elem.append(subelem)
##     &gt;&gt;&gt; elem.append(subelem)
##     &gt;&gt;&gt; serialize(elem) # 3.3
##     '&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>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="xinclude"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">xinclude</span>()</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lxml.tests.selftest-pysrc.html#xinclude">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <blockquote>
<p>Basic inclusion example (XInclude C.1)</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C1.xml&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C1</span>
<span class="py-output">&lt;document&gt;</span>
<span class="py-output">  &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;</span>
<span class="py-output">  &lt;disclaimer&gt;</span>
<span class="py-output">  &lt;p&gt;The opinions represented herein represent those of the individual</span>
<span class="py-output">  and should not be interpreted as official policy endorsed by this</span>
<span class="py-output">  organization.&lt;/p&gt;</span>
<span class="py-output">&lt;/disclaimer&gt;</span>
<span class="py-output">&lt;/document&gt;</span></pre>
<p>Textual inclusion example (XInclude C.2)</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C2.xml&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C2</span>
<span class="py-output">&lt;document&gt;</span>
<span class="py-output">  &lt;p&gt;This document has been accessed</span>
<span class="py-output">  324387 times.&lt;/p&gt;</span>
<span class="py-output">&lt;/document&gt;</span></pre>
<p>Textual inclusion of XML example (XInclude C.3)</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>document = xinclude_loader(<span class="py-string">&quot;C3.xml&quot;</span>)
<span class="py-prompt">&gt;&gt;&gt; </span>ElementInclude.include(document, xinclude_loader)
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">print</span>(serialize(document)) <span class="py-comment"># C3</span>
<span class="py-output">&lt;document&gt;</span>
<span class="py-output">  &lt;p&gt;The following is the source of the &quot;data.xml&quot; resource:&lt;/p&gt;</span>
<span class="py-output">  &lt;example&gt;&amp;lt;?xml version='1.0'?&amp;gt;</span>
<span class="py-output">&amp;lt;data&amp;gt;</span>
<span class="py-output">  &amp;lt;item&amp;gt;&amp;lt;![CDATA[Brooks &amp;amp; Shields]]&amp;gt;&amp;lt;/item&amp;gt;</span>
<span class="py-output">&amp;lt;/data&amp;gt;</span>
<span class="py-output">&lt;/example&gt;</span>
<span class="py-output">&lt;/document&gt;</span></pre>
</blockquote>
<p>##     Fallback example (XInclude C.5)
##     Note! Fallback support is not yet implemented</p>
<p>##     &gt;&gt;&gt; document = xinclude_loader(&quot;C5.xml&quot;)
##     &gt;&gt;&gt; ElementInclude.include(document, xinclude_loader)
##     Traceback (most recent call last):
##     IOError: resource not found
##     &gt;&gt;&gt; # print(serialize(document)) # C5</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== VARIABLES DETAILS ==================== -->
<a name="section-VariablesDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Variables Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-VariablesDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="SAMPLE_XML"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">SAMPLE_XML</h3>
  
  <dl class="fields">
  </dl>
  <dl class="fields">
    <dt>Value:</dt>
      <dd><table><tr><td><pre class="variable">
ElementTree.XML(&quot;&quot;&quot;
&lt;body&gt;
  &lt;tag class='a'&gt;text&lt;/tag&gt;
  &lt;tag class='b' /&gt;
   &lt;section&gt;
    &lt;tag class='b' id='inner'&gt;subtext&lt;/tag&gt;
   &lt;/section&gt;
&lt;/body&gt;
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
  </dl>
</td></tr></table>
</div>
<a name="ENTITY_XML"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">ENTITY_XML</h3>
  
  <dl class="fields">
  </dl>
  <dl class="fields">
    <dt>Value:</dt>
      <dd><table><tr><td><pre class="variable">
<code class="variable-quote">'''</code><code class="variable-string">&lt;!DOCTYPE points [</code>
<code class="variable-string">&lt;!ENTITY % user-entities SYSTEM \'user-entities.xml\'&gt;</code>
<code class="variable-string">%user-entities;</code>
<code class="variable-string">]&gt;</code>
<code class="variable-string">&lt;document&gt;&amp;entity;&lt;/document&gt;</code>
<code class="variable-string"></code><code class="variable-quote">'''</code>
</pre></td></tr></table>
</dd>
  </dl>
</td></tr></table>
</div>
<a name="XINCLUDE"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">XINCLUDE</h3>
  
  <dl class="fields">
  </dl>
  <dl class="fields">
    <dt>Value:</dt>
      <dd><table><tr><td><pre class="variable">
<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>
<code class="variable-string">&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</code>
<code class="variable-string">  &lt;p&gt;120 Mz is adequate for an average home user.&lt;/p&gt;</code>
<code class="variable-string">  &lt;xi:include href=&quot;disclaimer.xml&quot;/&gt;</code>
<code class="variable-string">&lt;/document&gt;</code>
<code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
 <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>
<code class="variable-string">&lt;document xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</code>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="/">lxml API</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1
    on Wed Jun 27 16:05:05 2018
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>