Imported Upstream version 3.3.6
authorHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:45:05 +0000 (10:45 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:45:34 +0000 (10:45 +0900)
Change-Id: I10f7bab868c1ddfff3d5313b944783acf2d5fa03
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
423 files changed:
CHANGES.txt
PKG-INFO
README.rst
doc/html/FAQ.html
doc/html/api.html
doc/html/api/abc.ABCMeta-class.html
doc/html/api/api-objects.txt
doc/html/api/class-tree.html
doc/html/api/cssselect.parser.SelectorError-class.html
doc/html/api/cssselect.parser.SelectorSyntaxError-class.html
doc/html/api/cssselect.xpath.ExpressionError-class.html
doc/html/api/cssselect.xpath.XPathExpr-class.html
doc/html/api/deprecated-index.html
doc/html/api/exceptions.AssertionError-class.html
doc/html/api/help.html
doc/html/api/identifier-index-A.html
doc/html/api/identifier-index-B.html
doc/html/api/identifier-index-C.html
doc/html/api/identifier-index-D.html
doc/html/api/identifier-index-E.html
doc/html/api/identifier-index-F.html
doc/html/api/identifier-index-G.html
doc/html/api/identifier-index-H.html
doc/html/api/identifier-index-I.html
doc/html/api/identifier-index-J.html
doc/html/api/identifier-index-K.html
doc/html/api/identifier-index-L.html
doc/html/api/identifier-index-M.html
doc/html/api/identifier-index-N.html
doc/html/api/identifier-index-O.html
doc/html/api/identifier-index-P.html
doc/html/api/identifier-index-Q.html
doc/html/api/identifier-index-R.html
doc/html/api/identifier-index-S.html
doc/html/api/identifier-index-T.html
doc/html/api/identifier-index-U.html
doc/html/api/identifier-index-V.html
doc/html/api/identifier-index-W.html
doc/html/api/identifier-index-X.html
doc/html/api/identifier-index-Y.html
doc/html/api/identifier-index-Z.html
doc/html/api/identifier-index-_.html
doc/html/api/identifier-index.html
doc/html/api/lxml-module.html
doc/html/api/lxml-pysrc.html
doc/html/api/lxml.ElementInclude-module.html
doc/html/api/lxml.ElementInclude-pysrc.html
doc/html/api/lxml.ElementInclude.FatalIncludeError-class.html
doc/html/api/lxml.builder-module.html
doc/html/api/lxml.builder-pysrc.html
doc/html/api/lxml.builder.ElementMaker-class.html
doc/html/api/lxml.cssselect-module.html
doc/html/api/lxml.cssselect-pysrc.html
doc/html/api/lxml.cssselect.CSSSelector-class.html
doc/html/api/lxml.cssselect.LxmlHTMLTranslator-class.html
doc/html/api/lxml.cssselect.LxmlTranslator-class.html
doc/html/api/lxml.doctestcompare-module.html
doc/html/api/lxml.doctestcompare-pysrc.html
doc/html/api/lxml.doctestcompare.LHTMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare.LXMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare._RestoreChecker-class.html
doc/html/api/lxml.etree-module.html
doc/html/api/lxml.etree.AncestorsIterator-class.html
doc/html/api/lxml.etree.AttributeBasedElementClassLookup-class.html
doc/html/api/lxml.etree.C14NError-class.html
doc/html/api/lxml.etree.CDATA-class.html
doc/html/api/lxml.etree.CommentBase-class.html
doc/html/api/lxml.etree.CustomElementClassLookup-class.html
doc/html/api/lxml.etree.DTD-class.html
doc/html/api/lxml.etree.DTDError-class.html
doc/html/api/lxml.etree.DTDParseError-class.html
doc/html/api/lxml.etree.DTDValidateError-class.html
doc/html/api/lxml.etree.DocInfo-class.html
doc/html/api/lxml.etree.DocumentInvalid-class.html
doc/html/api/lxml.etree.ETCompatXMLParser-class.html
doc/html/api/lxml.etree.ETXPath-class.html
doc/html/api/lxml.etree.ElementBase-class.html
doc/html/api/lxml.etree.ElementChildIterator-class.html
doc/html/api/lxml.etree.ElementClassLookup-class.html
doc/html/api/lxml.etree.ElementDefaultClassLookup-class.html
doc/html/api/lxml.etree.ElementDepthFirstIterator-class.html
doc/html/api/lxml.etree.ElementNamespaceClassLookup-class.html
doc/html/api/lxml.etree.ElementTextIterator-class.html
doc/html/api/lxml.etree.EntityBase-class.html
doc/html/api/lxml.etree.Error-class.html
doc/html/api/lxml.etree.ErrorDomains-class.html
doc/html/api/lxml.etree.ErrorLevels-class.html
doc/html/api/lxml.etree.ErrorTypes-class.html
doc/html/api/lxml.etree.FallbackElementClassLookup-class.html
doc/html/api/lxml.etree.HTMLParser-class.html
doc/html/api/lxml.etree.HTMLPullParser-class.html
doc/html/api/lxml.etree.LxmlError-class.html
doc/html/api/lxml.etree.LxmlRegistryError-class.html
doc/html/api/lxml.etree.LxmlSyntaxError-class.html
doc/html/api/lxml.etree.NamespaceRegistryError-class.html
doc/html/api/lxml.etree.PIBase-class.html
doc/html/api/lxml.etree.ParseError-class.html
doc/html/api/lxml.etree.ParserBasedElementClassLookup-class.html
doc/html/api/lxml.etree.ParserError-class.html
doc/html/api/lxml.etree.PyErrorLog-class.html
doc/html/api/lxml.etree.PythonElementClassLookup-class.html
doc/html/api/lxml.etree.QName-class.html
doc/html/api/lxml.etree.RelaxNG-class.html
doc/html/api/lxml.etree.RelaxNGError-class.html
doc/html/api/lxml.etree.RelaxNGErrorTypes-class.html
doc/html/api/lxml.etree.RelaxNGParseError-class.html
doc/html/api/lxml.etree.RelaxNGValidateError-class.html
doc/html/api/lxml.etree.Resolver-class.html
doc/html/api/lxml.etree.Schematron-class.html
doc/html/api/lxml.etree.SchematronError-class.html
doc/html/api/lxml.etree.SchematronParseError-class.html
doc/html/api/lxml.etree.SchematronValidateError-class.html
doc/html/api/lxml.etree.SerialisationError-class.html
doc/html/api/lxml.etree.SiblingsIterator-class.html
doc/html/api/lxml.etree.TreeBuilder-class.html
doc/html/api/lxml.etree.XInclude-class.html
doc/html/api/lxml.etree.XIncludeError-class.html
doc/html/api/lxml.etree.XMLParser-class.html
doc/html/api/lxml.etree.XMLPullParser-class.html
doc/html/api/lxml.etree.XMLSchema-class.html
doc/html/api/lxml.etree.XMLSchemaError-class.html
doc/html/api/lxml.etree.XMLSchemaParseError-class.html
doc/html/api/lxml.etree.XMLSchemaValidateError-class.html
doc/html/api/lxml.etree.XMLSyntaxError-class.html
doc/html/api/lxml.etree.XPath-class.html
doc/html/api/lxml.etree.XPathDocumentEvaluator-class.html
doc/html/api/lxml.etree.XPathElementEvaluator-class.html
doc/html/api/lxml.etree.XPathError-class.html
doc/html/api/lxml.etree.XPathEvalError-class.html
doc/html/api/lxml.etree.XPathFunctionError-class.html
doc/html/api/lxml.etree.XPathResultError-class.html
doc/html/api/lxml.etree.XPathSyntaxError-class.html
doc/html/api/lxml.etree.XSLT-class.html
doc/html/api/lxml.etree.XSLTAccessControl-class.html
doc/html/api/lxml.etree.XSLTApplyError-class.html
doc/html/api/lxml.etree.XSLTError-class.html
doc/html/api/lxml.etree.XSLTExtension-class.html
doc/html/api/lxml.etree.XSLTExtensionError-class.html
doc/html/api/lxml.etree.XSLTParseError-class.html
doc/html/api/lxml.etree.XSLTSaveError-class.html
doc/html/api/lxml.etree._Attrib-class.html
doc/html/api/lxml.etree._BaseErrorLog-class.html
doc/html/api/lxml.etree._Comment-class.html
doc/html/api/lxml.etree._Document-class.html
doc/html/api/lxml.etree._DomainErrorLog-class.html
doc/html/api/lxml.etree._Element-class.html
doc/html/api/lxml.etree._ElementIterator-class.html
doc/html/api/lxml.etree._ElementMatchIterator-class.html
doc/html/api/lxml.etree._ElementStringResult-class.html
doc/html/api/lxml.etree._ElementTagMatcher-class.html
doc/html/api/lxml.etree._ElementTree-class.html
doc/html/api/lxml.etree._ElementUnicodeResult-class.html
doc/html/api/lxml.etree._Entity-class.html
doc/html/api/lxml.etree._ErrorLog-class.html
doc/html/api/lxml.etree._FeedParser-class.html
doc/html/api/lxml.etree._IDDict-class.html
doc/html/api/lxml.etree._ListErrorLog-class.html
doc/html/api/lxml.etree._LogEntry-class.html
doc/html/api/lxml.etree._ProcessingInstruction-class.html
doc/html/api/lxml.etree._RotatingErrorLog-class.html
doc/html/api/lxml.etree._SaxParserTarget-class.html
doc/html/api/lxml.etree._TargetParserResult-class.html
doc/html/api/lxml.etree._Validator-class.html
doc/html/api/lxml.etree._XPathEvaluatorBase-class.html
doc/html/api/lxml.etree._XSLTProcessingInstruction-class.html
doc/html/api/lxml.etree._XSLTResultTree-class.html
doc/html/api/lxml.etree.iterparse-class.html
doc/html/api/lxml.etree.iterwalk-class.html
doc/html/api/lxml.etree.xmlfile-class.html
doc/html/api/lxml.html-module.html
doc/html/api/lxml.html-pysrc.html
doc/html/api/lxml.html.CheckboxGroup-class.html
doc/html/api/lxml.html.CheckboxValues-class.html
doc/html/api/lxml.html.ElementSoup-module.html
doc/html/api/lxml.html.ElementSoup-pysrc.html
doc/html/api/lxml.html.FieldsDict-class.html
doc/html/api/lxml.html.FormElement-class.html
doc/html/api/lxml.html.HTMLParser-class.html
doc/html/api/lxml.html.HtmlComment-class.html
doc/html/api/lxml.html.HtmlElement-class.html
doc/html/api/lxml.html.HtmlElementClassLookup-class.html
doc/html/api/lxml.html.HtmlEntity-class.html
doc/html/api/lxml.html.HtmlMixin-class.html
doc/html/api/lxml.html.HtmlProcessingInstruction-class.html
doc/html/api/lxml.html.InputElement-class.html
doc/html/api/lxml.html.InputGetter-class.html
doc/html/api/lxml.html.InputMixin-class.html
doc/html/api/lxml.html.LabelElement-class.html
doc/html/api/lxml.html.MultipleSelectOptions-class.html
doc/html/api/lxml.html.RadioGroup-class.html
doc/html/api/lxml.html.SelectElement-class.html
doc/html/api/lxml.html.TextareaElement-class.html
doc/html/api/lxml.html.XHTMLParser-class.html
doc/html/api/lxml.html._MethodFunc-class.html
doc/html/api/lxml.html.builder-module.html
doc/html/api/lxml.html.builder-pysrc.html
doc/html/api/lxml.html.clean-module.html
doc/html/api/lxml.html.clean-pysrc.html
doc/html/api/lxml.html.clean.Cleaner-class.html
doc/html/api/lxml.html.defs-module.html
doc/html/api/lxml.html.defs-pysrc.html
doc/html/api/lxml.html.diff-module.html
doc/html/api/lxml.html.diff-pysrc.html
doc/html/api/lxml.html.diff.DEL_END-class.html
doc/html/api/lxml.html.diff.DEL_START-class.html
doc/html/api/lxml.html.diff.InsensitiveSequenceMatcher-class.html
doc/html/api/lxml.html.diff.NoDeletes-class.html
doc/html/api/lxml.html.diff.href_token-class.html
doc/html/api/lxml.html.diff.tag_token-class.html
doc/html/api/lxml.html.diff.token-class.html
doc/html/api/lxml.html.formfill-module.html
doc/html/api/lxml.html.formfill-pysrc.html
doc/html/api/lxml.html.formfill.DefaultErrorCreator-class.html
doc/html/api/lxml.html.formfill.FormNotFound-class.html
doc/html/api/lxml.html.html5parser-module.html
doc/html/api/lxml.html.html5parser-pysrc.html
doc/html/api/lxml.html.html5parser.HTMLParser-class.html
doc/html/api/lxml.html.html5parser.XHTMLParser-class.html
doc/html/api/lxml.html.soupparser-module.html
doc/html/api/lxml.html.soupparser-pysrc.html
doc/html/api/lxml.html.usedoctest-module.html
doc/html/api/lxml.html.usedoctest-pysrc.html
doc/html/api/lxml.includes-module.html
doc/html/api/lxml.includes-pysrc.html
doc/html/api/lxml.isoschematron-module.html
doc/html/api/lxml.isoschematron-pysrc.html
doc/html/api/lxml.isoschematron.Schematron-class.html
doc/html/api/lxml.objectify-module.html
doc/html/api/lxml.objectify.BoolElement-class.html
doc/html/api/lxml.objectify.ElementMaker-class.html
doc/html/api/lxml.objectify.FloatElement-class.html
doc/html/api/lxml.objectify.IntElement-class.html
doc/html/api/lxml.objectify.LongElement-class.html
doc/html/api/lxml.objectify.NoneElement-class.html
doc/html/api/lxml.objectify.NumberElement-class.html
doc/html/api/lxml.objectify.ObjectPath-class.html
doc/html/api/lxml.objectify.ObjectifiedDataElement-class.html
doc/html/api/lxml.objectify.ObjectifiedElement-class.html
doc/html/api/lxml.objectify.ObjectifyElementClassLookup-class.html
doc/html/api/lxml.objectify.PyType-class.html
doc/html/api/lxml.objectify.StringElement-class.html
doc/html/api/lxml.pyclasslookup-module.html
doc/html/api/lxml.pyclasslookup-pysrc.html
doc/html/api/lxml.sax-module.html
doc/html/api/lxml.sax-pysrc.html
doc/html/api/lxml.sax.ElementTreeContentHandler-class.html
doc/html/api/lxml.sax.ElementTreeProducer-class.html
doc/html/api/lxml.sax.SaxError-class.html
doc/html/api/lxml.tests-module.html
doc/html/api/lxml.tests-pysrc.html
doc/html/api/lxml.tests.common_imports-module.html
doc/html/api/lxml.tests.common_imports-pysrc.html
doc/html/api/lxml.tests.common_imports.HelperTestCase-class.html
doc/html/api/lxml.tests.common_imports.LargeFileLike-class.html
doc/html/api/lxml.tests.common_imports.LargeFileLikeUnicode-class.html
doc/html/api/lxml.tests.common_imports.SillyFileLike-class.html
doc/html/api/lxml.tests.dummy_http_server-module.html
doc/html/api/lxml.tests.dummy_http_server-pysrc.html
doc/html/api/lxml.tests.dummy_http_server.HTTPRequestCollector-class.html
doc/html/api/lxml.tests.dummy_http_server.WebServer-class.html
doc/html/api/lxml.tests.dummy_http_server._RequestHandler-class.html
doc/html/api/lxml.tests.test_builder-module.html
doc/html/api/lxml.tests.test_builder-pysrc.html
doc/html/api/lxml.tests.test_builder.BuilderTestCase-class.html
doc/html/api/lxml.tests.test_classlookup-module.html
doc/html/api/lxml.tests.test_classlookup-pysrc.html
doc/html/api/lxml.tests.test_classlookup.ClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_classlookup.ProxyTestCase-class.html
doc/html/api/lxml.tests.test_css-module.html
doc/html/api/lxml.tests.test_css-pysrc.html
doc/html/api/lxml.tests.test_css.CSSTestCase-class.html
doc/html/api/lxml.tests.test_doctestcompare-module.html
doc/html/api/lxml.tests.test_doctestcompare-pysrc.html
doc/html/api/lxml.tests.test_doctestcompare.DoctestCompareTest-class.html
doc/html/api/lxml.tests.test_doctestcompare.DummyInput-class.html
doc/html/api/lxml.tests.test_dtd-module.html
doc/html/api/lxml.tests.test_dtd-pysrc.html
doc/html/api/lxml.tests.test_dtd.ETreeDtdTestCase-class.html
doc/html/api/lxml.tests.test_elementtree-module.html
doc/html/api/lxml.tests.test_elementtree-pysrc.html
doc/html/api/lxml.tests.test_elementtree.CElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreePullTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree._ETreeTestCaseBase-class.html
doc/html/api/lxml.tests.test_elementtree._XMLPullParserTest-class.html
doc/html/api/lxml.tests.test_errors-module.html
doc/html/api/lxml.tests.test_errors-pysrc.html
doc/html/api/lxml.tests.test_errors.ErrorTestCase-class.html
doc/html/api/lxml.tests.test_etree-module.html
doc/html/api/lxml.tests.test_etree-pysrc.html
doc/html/api/lxml.tests.test_etree.ETreeC14NTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeErrorLogTest-class.html
doc/html/api/lxml.tests.test_etree.ETreeOnlyTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeWriteTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.ElementIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.XMLPullParserTest-class.html
doc/html/api/lxml.tests.test_etree._XIncludeTestCase-class.html
doc/html/api/lxml.tests.test_htmlparser-module.html
doc/html/api/lxml.tests.test_htmlparser-pysrc.html
doc/html/api/lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
doc/html/api/lxml.tests.test_http_io-module.html
doc/html/api/lxml.tests.test_http_io-pysrc.html
doc/html/api/lxml.tests.test_http_io.HttpIOTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile-module.html
doc/html/api/lxml.tests.test_incremental_xmlfile-pysrc.html
doc/html/api/lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html
doc/html/api/lxml.tests.test_io-module.html
doc/html/api/lxml.tests.test_io-pysrc.html
doc/html/api/lxml.tests.test_io.ETreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io.ElementTreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io._IOTestCaseBase-class.html
doc/html/api/lxml.tests.test_isoschematron-module.html
doc/html/api/lxml.tests.test_isoschematron-pysrc.html
doc/html/api/lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses-module.html
doc/html/api/lxml.tests.test_nsclasses-pysrc.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
doc/html/api/lxml.tests.test_objectify-module.html
doc/html/api/lxml.tests.test_objectify-pysrc.html
doc/html/api/lxml.tests.test_objectify.ObjectifyTestCase-class.html
doc/html/api/lxml.tests.test_pyclasslookup-module.html
doc/html/api/lxml.tests.test_pyclasslookup-pysrc.html
doc/html/api/lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_relaxng-module.html
doc/html/api/lxml.tests.test_relaxng-pysrc.html
doc/html/api/lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html
doc/html/api/lxml.tests.test_sax-module.html
doc/html/api/lxml.tests.test_sax-pysrc.html
doc/html/api/lxml.tests.test_sax.ETreeSaxTestCase-class.html
doc/html/api/lxml.tests.test_schematron-module.html
doc/html/api/lxml.tests.test_schematron-pysrc.html
doc/html/api/lxml.tests.test_schematron.ETreeSchematronTestCase-class.html
doc/html/api/lxml.tests.test_threading-module.html
doc/html/api/lxml.tests.test_threading-pysrc.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
doc/html/api/lxml.tests.test_threading.ThreadingTestCase-class.html
doc/html/api/lxml.tests.test_unicode-module.html
doc/html/api/lxml.tests.test_unicode-pysrc.html
doc/html/api/lxml.tests.test_unicode.UnicodeTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema-module.html
doc/html/api/lxml.tests.test_xmlschema-pysrc.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator-module.html
doc/html/api/lxml.tests.test_xpathevaluator-pysrc.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html
doc/html/api/lxml.tests.test_xslt-module.html
doc/html/api/lxml.tests.test_xslt-pysrc.html
doc/html/api/lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTTestCase-class.html
doc/html/api/lxml.tests.test_xslt.Py3XSLTTestCase-class.html
doc/html/api/lxml.usedoctest-module.html
doc/html/api/lxml.usedoctest-pysrc.html
doc/html/api/mimetools.Message-class.html
doc/html/api/module-tree.html
doc/html/api/str-class.html
doc/html/api/xml.etree.ElementTree-module.html
doc/html/api/xml.etree.ElementTree-pysrc.html
doc/html/api/xml.etree.ElementTree.Element-class.html
doc/html/api/xml.etree.ElementTree.ElementTree-class.html
doc/html/api/xml.etree.ElementTree.ParseError-class.html
doc/html/api/xml.etree.ElementTree.QName-class.html
doc/html/api/xml.etree.ElementTree.TreeBuilder-class.html
doc/html/api/xml.etree.ElementTree.XMLParser-class.html
doc/html/api/xml.etree.ElementTree._IterParseIterator-class.html
doc/html/api/xml.etree.ElementTree._SimpleElementPath-class.html
doc/html/build.html
doc/html/capi.html
doc/html/changes-3.3.6.html [moved from doc/html/changes-3.3.5.html with 99% similarity]
doc/html/compatibility.html
doc/html/credits.html
doc/html/cssselect.html
doc/html/element_classes.html
doc/html/elementsoup.html
doc/html/extensions.html
doc/html/html5parser.html
doc/html/index.html
doc/html/installation.html
doc/html/intro.html
doc/html/lxml-source-howto.html
doc/html/lxmlhtml.html
doc/html/objectify.html
doc/html/parsing.html
doc/html/performance.html
doc/html/resolvers.html
doc/html/sax.html
doc/html/sitemap.html
doc/html/tutorial.html
doc/html/validation.html
doc/html/xpathxslt.html
doc/main.txt
src/lxml.egg-info/PKG-INFO
src/lxml.egg-info/SOURCES.txt
src/lxml/apihelpers.pxi
src/lxml/extensions.pxi
src/lxml/includes/lxml-version.h
src/lxml/lxml.etree.c
src/lxml/lxml.objectify.c
src/lxml/proxy.pxi
src/lxml/tests/test_etree.py
src/lxml/tests/test_xslt.py
version.txt

index 37ecbd6..a9d6420 100644 (file)
@@ -2,6 +2,20 @@
 lxml changelog
 ==============
 
+3.3.6 (2014-08-28)
+==================
+
+Bugs fixed
+----------
+
+* Prevent tree cycle creation when adding Elements as siblings.
+
+* LP#1361948: crash when deallocating Element siblings without parent.
+
+* LP#1354652: crash when traversing internally loaded documents in XSLT
+  extension functions.
+
+
 3.3.5 (2014-04-18)
 ==================
 
index 9f660ec..b98b227 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.3.5
+Version: 3.3.6
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
 Author-email: lxml-dev@lxml.de
 License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.5.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.6.tar.gz
 Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.  It
         provides safe and convenient access to these libraries using the ElementTree
         API.
@@ -37,14 +37,18 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.3.5 (2014-04-18)
+        3.3.6 (2014-08-28)
         ==================
         
         Bugs fixed
         ----------
         
-        * HTML cleaning could fail to strip javascript links that mix control
-          characters into the link scheme.
+        * Prevent tree cycle creation when adding Elements as siblings.
+        
+        * LP#1361948: crash when deallocating Element siblings without parent.
+        
+        * LP#1354652: crash when traversing internally loaded documents in XSLT
+          extension functions.
         
         
         
index ac79fd7..61db5bd 100644 (file)
@@ -38,7 +38,7 @@ Please `contact Stefan Behnel`_ for other ways to support the lxml project,
 as well as commercial consulting, customisations and trainings on lxml and
 fast Python XML processing.
 
-.. |Donate| image:: https://github.com/lxml/lxml/raw/master/doc/html/paypal_btn_donateCC_LG.gif
+.. |Donate| image:: http://lxml.de/paypal_btn_donateCC_LG.png
             :width: 160
             :height: 47
             :alt: Donate to the lxml project
index 9a113e1..63367d0 100644 (file)
@@ -10,7 +10,7 @@
 </head>
 <body>
 <div class="document" id="lxml-faq-frequently-asked-questions">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
 
 <p>Frequently asked questions on lxml.  See also the notes on <a class="reference external" href="compatibility.html">compatibility</a> to
 <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a>.</p>
@@ -935,7 +935,7 @@ map it to your namespace.  See also the question above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 8728b0c..7bbd2a3 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="apis-specific-to-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">APIs specific to lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">APIs specific to lxml.etree</h1>
 
 <p>lxml.etree tries to follow established APIs wherever possible.  Sometimes,
 however, the need to expose a feature in an easy way led to the invention of a
@@ -476,7 +476,7 @@ example:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 93cf805..53cec6b 100644 (file)
@@ -426,7 +426,7 @@ even via super()).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 16e5609..e92b59c 100644 (file)
@@ -5820,6 +5820,8 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_element   lxml.tes
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_and_remove     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove
 lxml.tests.test_etree.ETreeOnlyTestCase.test_append_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error
+lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_cycle_long    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle_long
 lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_noops     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops
 lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_start        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start
@@ -5834,7 +5836,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_8bit_override     lx
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors_tag lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag
 lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_reuse_after_move       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move
 lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_text_resolve        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_cycle_long        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle_long
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_has_key lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_empty    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty
@@ -5849,7 +5851,6 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_pi_parse     lxml.tests.test_etree.ETre
 lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_set_base_url_docinfo  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setitem_assert    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_overrun     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_noops lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding_unknown   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_base_url_docinfo    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_replace_new       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new
@@ -5861,7 +5862,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_parse     lxml.tests.test_et
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_pis     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getparent lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_element lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple
+lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons
 lxml.tests.test_etree.ETreeOnlyTestCase.test_doctype_name_only_roundtrip       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip
 lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_zero lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_tag      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag
@@ -5872,14 +5873,16 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_element      lxml.tests.test_etree
 lxml.tests.test_etree.ETreeOnlyTestCase.test_html_prefix_nsmap lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_pretty   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd_relative     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative
+lxml.tests.test_etree.ETreeOnlyTestCase.test_element_nsmap     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_string_dtd        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_cycle     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle
 lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata
 lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_parser_target_type_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken_multi_recover    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filelike_dtd      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_keep_cdata      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata
 lxml.tests.test_etree.ETreeOnlyTestCase.test_element_names     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_nsmap     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap
+lxml.tests.test_etree.ETreeOnlyTestCase.test_proxy_collect_siblings    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_element  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element
 lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid
@@ -5922,7 +5925,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_xpath  lxml.tests.test_etree.E
 lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_pi    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi
 lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_qname lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken_recover  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_strip   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_noops lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops
 lxml.tests.test_etree.ETreeOnlyTestCase.test_XMLDTDID  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_local_name     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_method_text_encoding     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding
@@ -5938,19 +5941,21 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_pis   lxml.tests.test_et
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_error  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode
+lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_strip   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip
 lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_public    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone
 lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_colon       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_cdata       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata
 lxml.tests.test_etree.ETreeOnlyTestCase.test_c_api     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags
+lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_type        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getnext   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attrib_and_keywords       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_and_keywords
 lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding
 lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default
 lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings_tag  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_type        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type
+lxml.tests.test_etree.ETreeOnlyTestCase.test_proxy_collect_siblings_text       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_pi_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment
 lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_colon     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_all_empty_reversed       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed
@@ -6014,6 +6019,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base    lxml.tests.test_etree.ETr
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge
 lxml.tests.test_etree.ETreeOnlyTestCase.test_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_cycle lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes_ns       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns
 lxml.tests.test_etree.ETreeWriteTestCase       lxml.tests.test_etree.ETreeWriteTestCase-class.html
 lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzipfile_parse        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse
@@ -7084,11 +7090,13 @@ lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.H
 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase  lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment       lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
+lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_xpath_on_context_node       lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node
 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions2 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2
 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions1 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1
 lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
 lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
 unittest.case.TestCase.failureException        exceptions.AssertionError-class.html
+lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node       lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node
 lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
 lxml.tests.test_xslt.ETreeXSLTTestCase lxml.tests.test_xslt.ETreeXSLTTestCase-class.html
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_xpath       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath
index 6e69b08..f86a78c 100644 (file)
@@ -475,12 +475,12 @@ Element class lookup method that uses the objectify classes.</em>
 Iterates over an element and its sub-elements in document order (depth
 first pre-order).</em>
     </li>
-    <li> <strong class="uidlink"><a href="lxml.builder.ElementMaker-class.html">lxml.builder.ElementMaker</a></strong>:
-      <em class="summary">Element generator factory.</em>
-    </li>
     <li> <strong class="uidlink"><a href="lxml.objectify.ElementMaker-class.html">lxml.objectify.ElementMaker</a></strong>:
       <em class="summary">ElementMaker(self, namespace=None, nsmap=None, annotate=True, makeelement=None)</em>
     </li>
+    <li> <strong class="uidlink"><a href="lxml.builder.ElementMaker-class.html">lxml.builder.ElementMaker</a></strong>:
+      <em class="summary">Element generator factory.</em>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">lxml.etree.ElementTextIterator</a></strong>:
       <em class="summary">ElementTextIterator(self, element, tag=None, with_tail=True)
 Iterates over the text content of a subtree.</em>
@@ -1232,7 +1232,7 @@ type(name, bases, dict) -&gt; a new type</em>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c125807..4be492d 100644 (file)
@@ -194,7 +194,7 @@ You can just use ``except SelectorError:`` when calling
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 77a43b3..72ac388 100644 (file)
@@ -201,7 +201,7 @@ Parsing a selector that does not match the grammar.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3a6944a..cdca1bb 100644 (file)
@@ -193,7 +193,7 @@ Unknown or unsupported selector (eg. pseudo-class).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62523de..1658f5d 100644 (file)
@@ -379,7 +379,7 @@ to a single parent.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e95475f..1ffd8d3 100644 (file)
@@ -145,7 +145,7 @@ with older versions of lxml or ElementTree.</li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b0035a0..4e650a5 100644 (file)
@@ -280,7 +280,7 @@ Assertion failed.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4db3b01..8fb016a 100644 (file)
@@ -256,7 +256,7 @@ page was last updated. </p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 943f41b..1461ba7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0680b4a..078bf80 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da87125..5ac87c8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72f6259..30e2f81 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ad4907a..002f513 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c8541a..499c689 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 310b8e6..8fb3965 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b38716..49cdc6c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6463035..3026ead 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd671ff..0a48741 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03d9ca9..bdcd214 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bfdb3fe..fc86120 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6505f75..5d411a5 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f92772..210db30 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a43ce3f..eb371b7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0905e89..3123ea8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e27a4a..d8666eb 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 893cf0a..dda0134 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7d9fe0..449ed73 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d93b12a..d90bc11 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TABLE">TABLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#table_tags">table_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag">tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare">tag_compare()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag_or_value">tag_or_value()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html">tag_token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#tags">tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tail">tail</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tail">tail</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#target">target</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TBODY">TBODY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TD">TD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#temp_install">temp_install()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html">TempXmlFileTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr">test_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element">test_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_list">test_addattr_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser">test_html_feed_parser()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext">test_addnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_chunky">test_html_feed_parser_chunky()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser">test_html_feed_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_more_tags">test_html_feed_parser_more_tags()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_chunky">test_html_feed_parser_chunky()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle">test_addnext_cycle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_more_tags">test_html_feed_parser_more_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle_long">test_addnext_cycle_long()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken">test_html_iterparse_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken_no_recover">test_html_iterparse_broken_no_recover()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken">test_html_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken_no_recover">test_html_iterparse_broken_no_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_stop_short">test_html_iterparse_stop_short()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_stop_short">test_html_iterparse_stop_short()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle">test_addprevious_cycle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle_long">test_addprevious_cycle_long()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_anonymous_namespace">test_anonymous_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_recursive_error">test_append_recursive_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote">test_html_subelement_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_and_keywords">test_attrib_and_keywords()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_anonymous_namespace">test_anonymous_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote">test_html_subelement_name_quote()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space">test_html_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_as_attrib">test_attrib_as_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_recursive_error">test_append_recursive_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html">test_htmlparser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client">test_http_client()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_and_keywords">test_attrib_and_keywords()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_as_attrib">test_attrib_as_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html">test_http_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html">test_incremental_xmlfile</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_order">test_attrib_order()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_order">test_attrib_order()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_internal_dtds">test_internal_dtds()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html">test_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute">test_attribute()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute">test_attribute()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case">test_tags_upper_lower_case()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case_html">test_tags_upper_lower_case_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_end">test_iterparse_file_dtd_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_start">test_iterparse_file_dtd_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf16_bom">test_iterparse_utf16_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_attribute()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf8_bom">test_iterparse_utf8_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child">test_child()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr">test_child_getattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child">test_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg">test_child_index_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr">test_child_getattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter">test_child_iter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len">test_child_len()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant">test_child_nonexistant()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg">test_child_index_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_ns_nons">test_child_ns_nons()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter">test_child_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro">test_child_set_ro()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len">test_child_len()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup">test_class_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant">test_child_nonexistant()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_ns_nons">test_child_ns_nons()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_type_mismatch">test_class_lookup_type_mismatch()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro">test_child_set_ro()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_large_sourceline_XML">test_large_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup">test_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_type_mismatch">test_class_lookup_type_mismatch()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html">test_classlookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_closing_out_of_order_in_error_case">test_closing_out_of_order_in_error_case()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable_attrib">test_comment_immutable_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup">test_concurrent_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies">test_concurrent_proxies()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren">test_countchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element">test_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default">test_create_element_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html">test_css</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html#test_cssselect">test_cssselect()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html">test_module_parse_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error">test_module_parse_html_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover">test_module_parse_html_norecover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_anonymous">test_namespace_nested_anonymous()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nsmap">test_namespace_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_unknown_event">test_unknown_event()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_unknown_type_raises">test_unknown_type_raises()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars">test_vars()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version">test_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_wide_unicode_xml">test_wide_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_wide_unicode_xml">test_wide_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html#test_write_compressed_text">test_write_compressed_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element">test_write_Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element_repeatedly">test_write_Element_repeatedly()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html">test_xmlschema</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema">test_xmlschema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_comment_error">test_xmlschema_comment_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_error_log">test_xmlschema_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file">test_xmlschema_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_illegal_validation_error">test_xmlschema_illegal_validation_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html">test_objectify</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd">test_parse_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_parse_utf8_bom">test_parse_utf8_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix">test_parser_input_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html">test_xpathevaluator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings">test_proxy_collect_siblings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text">test_proxy_collect_siblings_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt">test_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc">test_proxy_reuse_after_gc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_resolver()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_XML()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_resolver()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_xpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_xpath()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry">test_registry()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry">test_registry()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean">test_rel_xpath_boolean()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean">test_rel_xpath_boolean()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements">test_rel_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements">test_rel_xpath_list_elements()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html">test_relaxng</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html">test_relaxng</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng">test_relaxng()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng">test_relaxng()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error">test_relaxng_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_equal_input">test_equal_input()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error">test_relaxng_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error">test_relaxng_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error">test_relaxng_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include">test_relaxng_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include">test_relaxng_include()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema">test_relaxng_invalid_schema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema">test_relaxng_invalid_schema()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2">test_relaxng_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2">test_relaxng_invalid_schema2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3">test_relaxng_invalid_schema3()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4">test_relaxng_invalid_schema4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut">test_relaxng_shortcut()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests-module.html">tests</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare">text_compare()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#text_content">text_content()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TEXTAREA">TEXTAREA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html">TextareaElement</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TFOOT">TFOOT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TH">TH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#THEAD">THEAD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold">threshold</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html" onclick="show_private();">InsensitiveSequenceMatcher</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TITLE">TITLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html">token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize">tokenize()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize_annotated">tokenize_annotated()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#top_level_tags">top_level_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#tostring">tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostring">tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostringlist">tostringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tounicode">tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TR">TR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#TREE">TREE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC">TREE_INVALID_DEC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX">TREE_INVALID_HEX</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_NOT_UTF8">TREE_NOT_UTF8</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#TREE_PYTYPE">TREE_PYTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY">TREE_UNTERMINATED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TT">TT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type">type</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#type">type</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#type_check">type_check</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type_name">type_name</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
 </table>
 </td></tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a05b79..f1290b7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 76fb5d3..fc0422c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5800522..cde09a8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c1a4fe5..8d72724 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e570e1..2dfd5e4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 45ee5b5..79aed0c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63c80cb..d8d9339 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c338949..f245ed8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b16ce0..1104467 100644 (file)
@@ -236,7 +236,7 @@ with statically linked libraries.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cb29d9f..70c3f17 100644 (file)
@@ -123,7 +123,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63ee777..1bba182 100644 (file)
@@ -277,7 +277,7 @@ form of custom URL resolvers.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 46b199c..d437483 100644 (file)
@@ -519,7 +519,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd096ea..e8bfb04 100644 (file)
@@ -229,7 +229,7 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 00e9932..bd1e475 100644 (file)
@@ -202,7 +202,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d46c360..6cadd29 100644 (file)
@@ -435,7 +435,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ae2169..48f1dde 100644 (file)
@@ -352,7 +352,7 @@ and/or a specific target <tt class="rst-docutils literal">namespace</tt> to the
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b01b82f..dff0d37 100644 (file)
@@ -231,7 +231,7 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33fac3a..8dfec71 100644 (file)
@@ -299,7 +299,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8249cd8..0d6ef8b 100644 (file)
@@ -308,7 +308,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6501583..6065b59 100644 (file)
@@ -310,7 +310,7 @@ lxml extensions + HTML support.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8fded64..362b423 100644 (file)
@@ -362,7 +362,7 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7e9e7e..90dfb2f 100644 (file)
@@ -493,7 +493,7 @@ etree.HTMLParser(recover= False, remove_blank_text= True)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 27285df..9a8a150 100644 (file)
@@ -1105,7 +1105,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 57c6baf..cba8ff2 100644 (file)
@@ -229,7 +229,7 @@ doctest.OutputChecker --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a894660..8b1ca08 100644 (file)
@@ -610,7 +610,7 @@ to compare <code class="link">want</code> and <code class="link">got</code>.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ddd6d8..c5fd29d 100644 (file)
@@ -349,7 +349,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d38a44a..d66a49e 100644 (file)
@@ -1712,13 +1712,13 @@ standard Python logging package.</td>
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="lxml.etree-module.html#__pyx_capi__" class="summary-name" onclick="show_private();">__pyx_capi__</a> = <code title="{'appendChild': &lt;capsule object &quot;void (struct LxmlElement *, struct Lx\
-mlElement *)&quot; at 0x2b5c0c0&gt;,
+mlElement *)&quot; at 0x2b7afb659f30&gt;,
  'appendChildToElement': &lt;capsule object &quot;int (struct LxmlElement *, s\
-truct LxmlElement *)&quot; at 0x2b5c0f0&gt;,
+truct LxmlElement *)&quot; at 0x2b7afb659f60&gt;,
  'attributeValue': &lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; \
-at 0x2b58d50&gt;,
+at 0x2b7afb659c00&gt;,
  'attributeValueFromNsName': &lt;capsule object &quot;PyObject *(xmlNode *, co\
-nst xmlChar *, const xmlChar *)&quot; at 0x2b58d80&gt;,
+nst xmlChar *, const xmlChar *)&quot; at 0x2b7afb659c30&gt;,
 ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct L<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
@@ -1741,7 +1741,7 @@ nst xmlChar *, const xmlChar *)&quot; at 0x2b58d80&gt;,
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2b69f32578c0&gt;">&lt;lxml.etree._MemDebug object at 0x2b69f32578c0&gt;</code>
+        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2b7af73468c0&gt;">&lt;lxml.etree._MemDebug object at 0x2b7af73468c0&gt;</code>
     </td>
   </tr>
 </table>
@@ -2395,13 +2395,13 @@ function will only set the global error log of the current thread.</p>
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
 <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct LxmlElement *, struct Lx<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-mlElement *)&quot; at 0x2b5c0c0&gt;<code class="variable-op">,</code>
+mlElement *)&quot; at 0x2b7afb659f30&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">appendChildToElement</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;int (struct LxmlElement *, s<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-truct LxmlElement *)&quot; at 0x2b5c0f0&gt;<code class="variable-op">,</code>
+truct LxmlElement *)&quot; at 0x2b7afb659f60&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">attributeValue</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-at 0x2b58d50&gt;<code class="variable-op">,</code>
+at 0x2b7afb659c00&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">attributeValueFromNsName</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(xmlNode *, co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-nst xmlChar *, const xmlChar *)&quot; at 0x2b58d80&gt;<code class="variable-op">,</code>
+nst xmlChar *, const xmlChar *)&quot; at 0x2b7afb659c30&gt;<code class="variable-op">,</code>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -2466,7 +2466,7 @@ nst xmlChar *, const xmlChar *)&quot; at 0x2b58d80&gt;<code class="variable-op">
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c13a8d9..6634221 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the ancestors of an element (from parent to parent).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3fbbd1e..26f16c1 100644 (file)
@@ -293,7 +293,7 @@ missing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9e11527..2fadf1a 100644 (file)
@@ -211,7 +211,7 @@ Error during C14N serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 684d2fb..e24a4d4 100644 (file)
@@ -236,7 +236,7 @@ a string
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 967f00b..437ff26 100644 (file)
@@ -348,7 +348,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 47463d7..6fd769a 100644 (file)
@@ -272,7 +272,7 @@ lookup(self, type, doc, namespace, name)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e5050d7..6351728 100644 (file)
@@ -411,7 +411,7 @@ catalog.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 28b9206..9b3f0c0 100644 (file)
@@ -217,7 +217,7 @@ Base class for DTD errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 983a1f0..63d00a0 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a5268b1..9d8fae1 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e2ad3c..a27e162 100644 (file)
@@ -310,7 +310,7 @@ normal truth test on this value will always tell if the
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dfae03d..66a06a0 100644 (file)
@@ -213,7 +213,7 @@ method fails.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b452392..dbf18ea 100644 (file)
@@ -325,7 +325,7 @@ and thus ignores comments and processing instructions.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bafb3cb..a8b83e0 100644 (file)
@@ -293,7 +293,7 @@ you pass <tt class="rst-docutils literal">smart_strings=False</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 36a4572..de99c62 100644 (file)
@@ -361,7 +361,7 @@ hierarchies that implement a common namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69f8c8f..043428e 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the children of an element.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 75ffa10..011692b 100644 (file)
@@ -232,7 +232,7 @@ Superclass of Element class lookups.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52cfc3b..0bf367a 100644 (file)
@@ -306,7 +306,7 @@ accept the respective Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62cacae..48d8ba7 100644 (file)
@@ -287,7 +287,7 @@ tree it traverses is modified during iteration.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac4e726..8260a63 100644 (file)
@@ -319,7 +319,7 @@ Pass None for the empty namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1e3aff1..7075335 100644 (file)
@@ -279,7 +279,7 @@ tail text (e.g. if you know that it's only whitespace from pretty-printing).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0873c8..a15ec45 100644 (file)
@@ -349,7 +349,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eb5aca2..04e6af8 100644 (file)
@@ -209,7 +209,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed75df5..3bb3d81 100644 (file)
@@ -485,7 +485,7 @@ Libxml2 error domains
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e19156d..c6caee0 100644 (file)
@@ -243,7 +243,7 @@ Libxml2 error levels
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8b8cc4e..0caa3f1 100644 (file)
@@ -5406,7 +5406,7 @@ Libxml2 error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b70c642..c2b4f1f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 08f805c..abb45e1 100644 (file)
@@ -336,7 +336,7 @@ reasons.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26d8c43..2096b30 100644 (file)
@@ -326,7 +326,7 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9eb76e0..b78833b 100644 (file)
@@ -273,7 +273,7 @@ this one.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 462c666..ad31dba 100644 (file)
@@ -217,7 +217,7 @@ Base class of lxml registry errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 071bfc7..b91b986 100644 (file)
@@ -235,7 +235,7 @@ Base class for all syntax errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b81f4a..77dc3e4 100644 (file)
@@ -213,7 +213,7 @@ Error registering a namespace extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 428d5d8..1acd965 100644 (file)
@@ -350,7 +350,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f190be3..a66e29b 100644 (file)
@@ -295,7 +295,7 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c8df80b..d0519dc 100644 (file)
@@ -236,7 +236,7 @@ Element class lookup based on the XML parser.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0d284b3..aa2aade 100644 (file)
@@ -211,7 +211,7 @@ Internal lxml parser error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cf1e10e..e1ecfb4 100644 (file)
@@ -433,7 +433,7 @@ format.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 88799ea..5ce30dc 100644 (file)
@@ -289,7 +289,7 @@ iteration methods).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a4a671b..25b7a3c 100644 (file)
@@ -486,7 +486,7 @@ their text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa42438..dadaa69 100644 (file)
@@ -325,7 +325,7 @@ filename through the <tt class="rst-docutils literal">file</tt> keyword argument
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da98956..8a95854 100644 (file)
@@ -217,7 +217,7 @@ Base class for RelaxNG errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5f3b476..5685799 100644 (file)
@@ -548,7 +548,7 @@ Libxml2 RelaxNG error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c7c896a..7561bdf 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as RelaxNG.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b1951e8..e246bb3 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a RelaxNG schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80e11d8..6b1025f 100644 (file)
@@ -454,7 +454,7 @@ argument.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b659551..2324134 100644 (file)
@@ -366,7 +366,7 @@ errors in lxml.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ecd1f22..5454657 100644 (file)
@@ -217,7 +217,7 @@ Base class of all Schematron errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d40693b..3122ae8 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 21b85d4..0e87d5a 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5a96916..90b9bb1 100644 (file)
@@ -211,7 +211,7 @@ A libxml2 error that occurred during serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ada51e5..e9aec42 100644 (file)
@@ -234,7 +234,7 @@ Iterates over the siblings of an element.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 113cfa8..82a7743 100644 (file)
@@ -382,7 +382,7 @@ element.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d14c6ac..2ceef40 100644 (file)
@@ -291,7 +291,7 @@ processing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8508937..297346f 100644 (file)
@@ -211,7 +211,7 @@ Error during XInclude processing.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ad7c81..ccc0674 100644 (file)
@@ -376,7 +376,7 @@ apply to the default parser.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc70f23..43ee737 100644 (file)
@@ -324,7 +324,7 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7df5749..bc67e3c 100644 (file)
@@ -327,7 +327,7 @@ schema insert default/fixed attributes into validated documents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8963d47..fbb36fe 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XML Schema errors
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c09b017..e1fb35f 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13761ab..a72ff90 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with an XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69d719a..2a5ca18 100644 (file)
@@ -233,7 +233,7 @@ Syntax error while parsing an XML document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d82e9c2..d7f0a71 100644 (file)
@@ -361,7 +361,7 @@ returned for string results unless you pass
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d178635..fe5bfc1 100644 (file)
@@ -340,7 +340,7 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8b5d522..92352b3 100644 (file)
@@ -375,7 +375,7 @@ against the ElementTree as returned by getroottree().</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d1c6286..68c772f 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XPath errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 28e8766..834cb44 100644 (file)
@@ -219,7 +219,7 @@ Error during XPath evaluation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5b4d5aa..6981658 100644 (file)
@@ -215,7 +215,7 @@ Internal error looking up an XPath extension function.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 555b65e..3c1bc4e 100644 (file)
@@ -215,7 +215,7 @@ Error handling an XPath result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 369b669..f00b84b 100644 (file)
@@ -241,7 +241,7 @@ exceptions.BaseException --+               |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f309d32..5e3c38a 100644 (file)
@@ -575,7 +575,7 @@ result = transform(doc, some_strval = XSLT.strparam(
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62a2d41..90ce8ce 100644 (file)
@@ -428,7 +428,7 @@ XSLTAccessControl(create_dir=False, read_file=True, read_network=True,<span clas
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80817d0..24d95b3 100644 (file)
@@ -213,7 +213,7 @@ Error running an XSL transformation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8482740..a94eefd 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XSLT errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2d3e491..97a3fae 100644 (file)
@@ -397,7 +397,7 @@ case.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0c935f..c74c4d3 100644 (file)
@@ -213,7 +213,7 @@ Error registering an XSLT extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c8dd31b..b205f5a 100644 (file)
@@ -213,7 +213,7 @@ Error parsing a stylesheet document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bac2bd5..b8e54d9 100644 (file)
@@ -213,7 +213,7 @@ Error serialising an XSLT result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd74c23..d979b1c 100644 (file)
@@ -704,7 +704,7 @@ A dict-like proxy for the <tt class="rst-rst-rst-docutils literal rst-rst-docuti
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 61e2dca..cf2fb44 100644 (file)
@@ -346,7 +346,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d8b1869..5d12aa7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 31efd21..b935f2b 100644 (file)
@@ -227,7 +227,7 @@ document is cleaned up.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e69e84f..ed0d44d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b67d4d..4d93e42 100644 (file)
@@ -1600,7 +1600,7 @@ parents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eda2eab..2db9823 100644 (file)
@@ -276,7 +276,7 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c575150..7b20230 100644 (file)
@@ -278,7 +278,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d8d48e6..639b607 100644 (file)
@@ -267,7 +267,7 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 12c69bb..0e2a82e 100644 (file)
@@ -231,7 +231,7 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2cf84fb..46921d6 100644 (file)
@@ -998,7 +998,7 @@ class directly.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 44ab30b..cbad941 100644 (file)
@@ -333,7 +333,7 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6d87c6b..1b2cff4 100644 (file)
@@ -355,7 +355,7 @@ the value None, if there was no text.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 49c0fa6..398bbd3 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b4308d..213bf9f 100644 (file)
@@ -377,7 +377,7 @@ different from what the <tt class="rst-docutils literal">error_log</tt> property
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe16eb9..f285677 100644 (file)
@@ -482,7 +482,7 @@ that were created or modified 'by hand' are not supported.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26459ea..2378924 100644 (file)
@@ -570,7 +570,7 @@ entries.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 44e111d..0ab9955 100644 (file)
@@ -347,7 +347,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d66a023..5f8c570 100644 (file)
@@ -407,7 +407,7 @@ It is not guaranteed to work for all possible text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d333855..35bb871 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 402d91d..6257c98 100644 (file)
@@ -229,7 +229,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e964c4d..5888837 100644 (file)
@@ -262,7 +262,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index deb4c37..cec6201 100644 (file)
@@ -346,7 +346,7 @@ Base class for XML validators.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 720ae0b..aa67559 100644 (file)
@@ -322,7 +322,7 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d9197b..17d6fcb 100644 (file)
@@ -389,7 +389,7 @@ the processing instruction.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1c6fa3a..703a4dd 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b5578d..41d4827 100644 (file)
@@ -500,7 +500,7 @@ attribute default values are requested.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f37cad..0e9aec3 100644 (file)
@@ -323,7 +323,7 @@ was parsing XML data with <tt class="rst-docutils literal">iterparse()</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dc395c6..29d8865 100644 (file)
@@ -319,7 +319,7 @@ with xmlfile(&quot;somefile.xml&quot;, encoding='utf-8') as xf:
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f658f9..0858cb8 100644 (file)
@@ -1325,7 +1325,7 @@ _MethodFunc('make_links_absolute', copy= True)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c9e087..37f86e4 100644 (file)
@@ -3669,7 +3669,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1fb0b77..bfcf5f8 100644 (file)
@@ -413,7 +413,7 @@ uncheck individual checkboxes according to their value.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 48c6c3e..fa6a479 100644 (file)
@@ -346,7 +346,7 @@ checkboxes with the same name.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 36f7418..d7cd584 100644 (file)
@@ -263,7 +263,7 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8a198e0..35a02bc 100644 (file)
@@ -119,7 +119,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8212c0b..19b7b8e 100644 (file)
@@ -364,7 +364,7 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object at 0x332a6d0&gt;">&lt;_weakrefset.WeakSet object at 0x332a6d0&gt;</code>
+        <a href="lxml.html.FieldsDict-class.html#_abc_negative_cache" class="summary-name" onclick="show_private();">_abc_negative_cache</a> = <code title="&lt;_weakrefset.WeakSet object at 0x2b7afd759790&gt;">&lt;_weakrefset.WeakSet object at 0x2b7afd7<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr class="private">
@@ -378,7 +378,7 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x332a550&gt;">&lt;_weakrefset.WeakSet object at 0x332a550&gt;</code>
+        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x2b7afd759610&gt;">&lt;_weakrefset.WeakSet object at 0x2b7afd759610&gt;</code>
     </td>
   </tr>
   <tr>
@@ -651,6 +651,43 @@ _abcoll.Container --+
 </td></tr></table>
 </div>
 <br />
+<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
+<a name="section-ClassVariableDetails"></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">Class Variable Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariableDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_abc_negative_cache"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">_abc_negative_cache</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+&lt;_weakrefset.WeakSet object at 0x2b7afd759790&gt;
+</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">
@@ -682,7 +719,7 @@ _abcoll.Container --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 25ba59f..8f01929 100644 (file)
@@ -550,7 +550,7 @@ string, and defaults to <tt class="rst-rst-docutils literal rst-docutils literal
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f10840b..f2979f8 100644 (file)
@@ -254,7 +254,7 @@ objects.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a29b665..1df3724 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7cd4ef7..2e3b9df 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 60fd414..9e6ea31 100644 (file)
@@ -364,7 +364,7 @@ Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eed8a64..6ad47a9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 118390e..1772ed1 100644 (file)
@@ -800,7 +800,7 @@ element to get the document's head.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f11123b..2849cc1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c7cafdb..ae4b4fb 100644 (file)
@@ -593,7 +593,7 @@ attribute.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b96ba3f..13d3e15 100644 (file)
@@ -431,7 +431,7 @@ nput' or local-name(.) = 'textarea')]
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2889d00..1115d86 100644 (file)
@@ -329,7 +329,7 @@ Mix-in for all input elements (input, select, and textarea)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 649895c..24fdde6 100644 (file)
@@ -364,7 +364,7 @@ can't be found.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 38c6cfc..1f9ed90 100644 (file)
@@ -389,7 +389,7 @@ to unselect the option.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1380676..9d51192 100644 (file)
@@ -412,7 +412,7 @@ unchecks any other value).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bd42dc2..54a5809 100644 (file)
@@ -507,7 +507,7 @@ attribute of all the <tt class="rst-docutils literal">&lt;option&gt;</tt> elemen
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7f42e2..8b88441 100644 (file)
@@ -373,7 +373,7 @@ get/set the value with <tt class="rst-rst-rst-rst-rst-docutils literal rst-rst-r
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d9ee1f..c062245 100644 (file)
@@ -266,7 +266,7 @@ parser like this:</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e54666..b18cb87 100644 (file)
@@ -253,7 +253,7 @@ of the resulting document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54b9c09..9aa0d1c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e7ace00..f836bae 100644 (file)
@@ -433,7 +433,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9251b0f..e1354f7 100644 (file)
@@ -719,7 +719,7 @@ a<code class="re-op">-</code>z0<code class="re-op">-</code>9%&amp;\?;=~<code cla
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 220eaf8..6d7bf44 100644 (file)
@@ -1253,7 +1253,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4ca16fe..275a659 100644 (file)
@@ -759,7 +759,7 @@ more sneaky attempts.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index acdaa91..addacf0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03e1a76..d6ddb51 100644 (file)
@@ -240,7 +240,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b9f540..57d2c49 100644 (file)
@@ -193,7 +193,7 @@ blocks amidst large spans of changes
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="lxml.html.diff-module.html#html_annotate" class="summary-sig-name">html_annotate</a>(<span class="summary-sig-arg">doclist</span>,
-        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x381a398&gt;</span>)</span><br />
+        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x2b7afe0fa050&gt;</span>)</span><br />
       doclist should be ordered from oldest to newest, like:</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>
@@ -972,7 +972,7 @@ given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&g
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">html_annotate</span>(<span class="sig-arg">doclist</span>,
-        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x381a398&gt;</span>)</span>
+        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x2b7afe0fa050&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>&nbsp;
@@ -1370,7 +1370,7 @@ includes the elements tail.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3d5d902..0d9963e 100644 (file)
@@ -1737,7 +1737,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index be4751e..68c88c3 100644 (file)
@@ -94,7 +94,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3d67a23..a88a49c 100644 (file)
@@ -94,7 +94,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 661adfe..c31df71 100644 (file)
@@ -235,7 +235,7 @@ triple with n==0.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13d5f98..e50311f 100644 (file)
@@ -182,7 +182,7 @@ Raised when the document no longer contains any pending deletes
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 406d0af..64babef 100644 (file)
@@ -342,7 +342,7 @@ show the href when it changes.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62458ed..3364b34 100644 (file)
@@ -427,7 +427,7 @@ is only represented in a document by a tag.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c4b0a49..74bd64d 100644 (file)
@@ -412,7 +412,7 @@ space.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 379c635..28d1e6f 100644 (file)
@@ -546,7 +546,7 @@ escendant-or-self::x:textarea
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f17cd2a..363f3c2 100644 (file)
@@ -779,7 +779,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e797da4..200c22e 100644 (file)
@@ -303,7 +303,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5f0ced3..51578ba 100644 (file)
@@ -185,7 +185,7 @@ Raised when no form can be found
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a59538b..0fa2530 100644 (file)
@@ -418,7 +418,7 @@ is a fragment or a document.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7aa5f91..3274792 100644 (file)
@@ -592,7 +592,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e4590fc..688f344 100644 (file)
@@ -256,7 +256,7 @@ text</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0177862..11dc46c 100644 (file)
@@ -139,7 +139,7 @@ An html5lib XHTML Parser with lxml as tree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a0bf51..f6597a6 100644 (file)
@@ -449,7 +449,7 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8e02fef..6cc9703 100644 (file)
@@ -322,7 +322,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 70a2788..67e0e2a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93e8331..90317f8 100644 (file)
@@ -116,7 +116,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a02e568..3886073 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eedd132..224a54a 100644 (file)
@@ -100,7 +100,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c810eb0..b2317ea 100644 (file)
@@ -533,7 +533,7 @@ chematron.rng')))
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ede441..2fccda5 100644 (file)
@@ -609,7 +609,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bfe31ca..48da9d2 100644 (file)
@@ -685,7 +685,7 @@ been turned off).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ee67fe..d783892 100644 (file)
@@ -629,7 +629,7 @@ attributes.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x2dd1710&gt;">&lt;lxml.objectify.ElementMaker object at 0x2dd1710&gt;</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x2b7afcdb2b30&gt;">&lt;lxml.objectify.ElementMaker object at 0x2b7afcdb2b30&gt;</code>
     </td>
   </tr>
 <tr>
@@ -1136,7 +1136,7 @@ elements.  Pass 'string', for example, to make string values the default.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1f47624..977f1d3 100644 (file)
@@ -801,7 +801,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8c1f739..6859809 100644 (file)
@@ -365,7 +365,7 @@ some text
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0827f62..9134220 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2c1c547..e040a43 100644 (file)
@@ -396,7 +396,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b664e2..0bd72d2 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 86deed9..c31cb78 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b4a0e1..f987de3 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7394296..209eefa 100644 (file)
@@ -452,7 +452,7 @@ as second argument) or raises AttributeError.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06575a9..dc0ba49 100644 (file)
@@ -408,7 +408,7 @@ doing.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a7f741..f368522 100644 (file)
@@ -859,7 +859,7 @@ returned in document order.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c91dfea..8d8e770 100644 (file)
@@ -276,7 +276,7 @@ empty data elements (defauls to StringElement).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 67b342f..10fa092 100644 (file)
@@ -443,7 +443,7 @@ ignored.  Raises ValueError if the dependencies cannot be fulfilled.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5ae6e7d..32d73ac 100644 (file)
@@ -731,7 +731,7 @@ Instead, use the .text attribute to get a 'real' string.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1af5518..59a72c7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 76ac1b8..c9f8382 100644 (file)
@@ -107,7 +107,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1834524..68d0c45 100644 (file)
@@ -219,7 +219,7 @@ them against a SAX ContentHandler.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a913eac..d644154 100644 (file)
@@ -496,7 +496,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f53a17c..eb35905 100644 (file)
@@ -871,7 +871,7 @@ Locator provides useful information.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bca4131..47006ee 100644 (file)
@@ -281,7 +281,7 @@ Produces SAX events for an element and children.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef5f20b..8706985 100644 (file)
@@ -211,7 +211,7 @@ General SAX error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c84a8f..484bdc7 100644 (file)
@@ -170,7 +170,7 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c2b92c2..8617702 100644 (file)
@@ -102,7 +102,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9ddb09a..791ecef 100644 (file)
@@ -522,7 +522,7 @@ occurrences of pattern in string by the replacement repl.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7136c7b..37c1380 100644 (file)
@@ -599,7 +599,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 694a9fa..a7818e1 100644 (file)
@@ -420,7 +420,7 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c62aed5..4814849 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e75b3a..99a47ab 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bdde13c..a363454 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 702195a..1ec0dbf 100644 (file)
@@ -263,7 +263,7 @@ Simple HTTP request dumper for tests in Python 2.5+.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 172ff7c..5e4c136 100644 (file)
@@ -195,7 +195,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5942be4..6e689b3 100644 (file)
@@ -246,7 +246,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 521a78c..7b97864 100644 (file)
@@ -203,7 +203,7 @@ A web server that starts a new thread for each request.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd6463c..39ab489 100644 (file)
@@ -330,7 +330,7 @@ message.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1b52407..169258b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9087d34..a9237a5 100644 (file)
@@ -229,7 +229,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 64d3ee9..794fc60 100644 (file)
@@ -400,7 +400,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1d6679c..b9f3198 100644 (file)
@@ -269,7 +269,7 @@ Tests for different Element class lookup mechanisms.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3edf841..fa2b17b 100644 (file)
@@ -1254,7 +1254,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 100a5e2..e014131 100644 (file)
@@ -604,7 +604,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b50088b..c95badf 100644 (file)
@@ -498,7 +498,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ecb127a..d39eb2f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b5a828f..c3a30b5 100644 (file)
@@ -192,7 +192,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b328cf1..eeed1a3 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 96dfe05..812aa75 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b955ac2..8685c81 100644 (file)
@@ -294,7 +294,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 16836cf..81b4692 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0ca10d..c9b60dd 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9acd69..db801ea 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to DTD parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd8d890..f1a673d 100644 (file)
@@ -961,7 +961,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d943811..d7a5b83 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1c152d1..3c44261 100644 (file)
@@ -293,7 +293,7 @@ for IO related test cases.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9768a07..43477f6 100644 (file)
@@ -11400,7 +11400,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c9a5262..00e5eab 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 89ef890..199599d 100644 (file)
@@ -374,7 +374,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bbc91da..ac240c2 100644 (file)
@@ -650,7 +650,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c694f6..4128bea 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b25cc3b..72efb36 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0b03407..bf5dbe9 100644 (file)
@@ -494,7 +494,7 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d20e2e2..52db4ff 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5afd835..5f7c60b 100644 (file)
@@ -266,7 +266,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 434dca1..cfe0d92 100644 (file)
@@ -416,7 +416,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4acb01c..4e8e98f 100644 (file)
@@ -275,7 +275,7 @@ test_elementtree</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e121b5a..0a2d9ff 100644 (file)
@@ -4415,8 +4415,8 @@ lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1683', 'tag', 'link-68');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1684', 'root', 'link-215');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_noops"></a><div id="ETreeOnlyTestCase.test_addprevious_noops-def"><a name="L1493"></a><tt class="py-lineno">1493</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_noops-expanded"><a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1685" class="py-name"><a title="lxml.etree.Element
+<a name="ETreeOnlyTestCase.test_addnext_cycle"></a><div id="ETreeOnlyTestCase.test_addnext_cycle-def"><a name="L1493"></a><tt class="py-lineno">1493</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_cycle-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_cycle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle">test_addnext_cycle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_cycle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_cycle-expanded"><a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1685" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1685', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1686" class="py-name"><a title="lxml.etree
@@ -4439,6587 +4439,6813 @@ lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1692', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
 <a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1693', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1694" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1694', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1695" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1695', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1696" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1696', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1697" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1697', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1698', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1695" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1695', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1696" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1696', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1697" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1699', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1700" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1700', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1697', 'tag', 'link-68');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1698', 'root', 'link-215');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1701', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1702', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1703', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1699', 'tag', 'link-68');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_cycle"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle-def"><a name="L1504"></a><tt class="py-lineno">1504</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_cycle-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_cycle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle">test_addprevious_cycle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_cycle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_cycle-expanded"><a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt id="link-1700" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1700', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1701', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1702', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt id="link-1703" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1703', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1704', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1705', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt id="link-1706" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1706', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1707" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1707', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1708" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1708', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1709" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1709', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1710" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1710', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1711" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1711', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1712', 'tag', 'link-68');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1713', 'root', 'link-215');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1714" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1714', 'tag', 'link-68');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_cycle_long"></a><div id="ETreeOnlyTestCase.test_addnext_cycle_long-def"><a name="L1515"></a><tt class="py-lineno">1515</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_cycle_long-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_cycle_long');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle_long">test_addnext_cycle_long</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_cycle_long-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_cycle_long-expanded"><a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-1715" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1715', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1716', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1717" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1717', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt id="link-1718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1718', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1719', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1720" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1720', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt id="link-1721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1721', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1722" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1722', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1723" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1723', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1724" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1724', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1725" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1725', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1726" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1726', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1727" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1727', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_cycle_long"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle_long-def"><a name="L1525"></a><tt class="py-lineno">1525</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_cycle_long-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_cycle_long');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_cycle_long">test_addprevious_cycle_long</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_cycle_long-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_cycle_long-expanded"><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt id="link-1728" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1728', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1729', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1730" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1730', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt id="link-1731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1731', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1732" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1732', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1733" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1733', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt id="link-1734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1734', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1735" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1735', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1736" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1736', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1737', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1738" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1738', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1739" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1739', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1740', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_noops"></a><div id="ETreeOnlyTestCase.test_addprevious_noops-def"><a name="L1535"></a><tt class="py-lineno">1535</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_noops-expanded"><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt id="link-1741" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1741', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1742" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1742', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1743" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1743', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1744" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1744', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1745', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1746', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-1747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1747', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1748" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1748', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1749" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1749', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1750', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1751" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1751', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1752" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1752', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1753', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1754', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1755" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1704', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1705', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1706" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1755', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1756" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1756', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1706', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1707" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1707', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1708" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1708', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1709" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1757', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1758" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1758', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1759" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1759', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1709', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1710', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1711" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1760', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1761" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1761', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1711', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_noops"></a><div id="ETreeOnlyTestCase.test_addnext_noops-def"><a name="L1509"></a><tt class="py-lineno">1509</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_noops-expanded"><a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt id="link-1712" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1762', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1763', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1764', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1765" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1765', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1766" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1766', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1767" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1767', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_noops"></a><div id="ETreeOnlyTestCase.test_addnext_noops-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_noops-expanded"><a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt id="link-1768" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1712', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1768', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1769" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1713', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1714" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1769', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1770" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1714', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt id="link-1715" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1715', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1770', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt id="link-1771" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1771', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1716', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1717" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1717', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt id="link-1718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1718', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1719" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1772', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1773', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt id="link-1774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1774', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1775" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1719', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1720" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1720', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1721', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1722" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1722', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1723', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1724', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1725', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1775', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1776" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1776', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1777', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1778" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1778', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1779', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1780" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1780', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1781', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1726', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1727', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1728" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1782', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1783', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1784" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1728', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1729', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1730" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1730', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1731" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1784', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1785" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1785', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1786', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1731', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1732', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1733" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1787', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1788" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1788', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1789" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1733', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1734" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1734', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1735" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1735', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1736" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1789', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1790" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1790', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1791" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1791', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1792" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1736', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1737', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1792', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1793', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1794" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1738', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1525"></a><tt class="py-lineno">1525</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root-expanded"><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt id="link-1739" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1794', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1567"></a><tt class="py-lineno">1567</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root-expanded"><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt id="link-1795" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1739', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1795', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1740', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1741" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1796', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1797" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1741', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1742" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1797', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1798" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1742', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1743" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1798', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1799" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1743', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1744" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1744', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1531"></a><tt class="py-lineno">1531</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_pi-expanded"><a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">        <tt id="link-1745" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1799', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1800', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1573"></a><tt class="py-lineno">1573</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_pi-expanded"><a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt id="link-1801" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1745', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1801', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1802" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1746', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1747" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1802', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1747', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1748', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1749" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1803', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt id="link-1804" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1804', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1805" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1749', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1750', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt id="link-1751" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1751', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1752" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1805', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1806', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt id="link-1807" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1807', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1808" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1752', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1753', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt id="link-1754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1754', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1755" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1808', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1809" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1809', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt id="link-1810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1810', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1811" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1755', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt id="link-1756" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1756', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1757" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1757', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1758" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1758', 'pi', 'link-1758');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1759" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1759', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-1760" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1760', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1761" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1761', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line"> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1762" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1762', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1763', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1764', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt id="link-1765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1765', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1766" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1766', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1767" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1767', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1768', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1769" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1769', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1770" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1770', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1546"></a><tt class="py-lineno">1546</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-expanded"><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt id="link-1771" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1811', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt id="link-1812" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1812', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1813" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1813', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-1814" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1814', 'pi', 'link-1814');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1815" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1815', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt id="link-1816" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1816', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1817" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1817', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1818" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1818', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1819" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1819', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1820', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt id="link-1821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1821', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1822" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1822', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1823" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1823', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1824" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1824', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1825" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1825', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1826', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1588"></a><tt class="py-lineno">1588</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-expanded"><a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt id="link-1827" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1771', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1827', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1828" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1772', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1828', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1773', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt id="link-1774" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1774', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1775" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1829', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt id="link-1830" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1830', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1775', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1776', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt id="link-1777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1777', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1778" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1831', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1832" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1832', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">        <tt id="link-1833" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1833', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1834" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1778', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt id="link-1779" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1779', 'pi', 'link-1758');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1780" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1780', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt id="link-1781" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1781', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1782', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1783" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1783', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1784" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1784', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1785', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt id="link-1786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1786', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1787', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1788" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1788', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1789" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1789', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?TARGET TEXT?&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1790" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1790', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1791" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1791', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1559"></a><tt class="py-lineno">1559</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_pi-expanded"><a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt id="link-1792" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1834', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt id="link-1835" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1835', 'pi', 'link-1814');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1836" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1836', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt id="link-1837" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1837', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1838" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1838', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1839" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1839', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1840', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1841', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt id="link-1842" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1842', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1843', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1844" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1844', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1845" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1845', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?TARGET TEXT?&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1846', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1847" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1847', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1601"></a><tt class="py-lineno">1601</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_pi-expanded"><a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt id="link-1848" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1792', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1848', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1849" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1793', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1794" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1849', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1794', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt id="link-1795" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1795', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1850', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt id="link-1851" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1851', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1852" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1796', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1797" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1797', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt id="link-1798" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1798', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1799" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1852', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1853', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">        <tt id="link-1854" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1854', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1799', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1800', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt id="link-1801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1801', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1802" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1855', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1856" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1856', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt id="link-1857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1857', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1858" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1802', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-1803" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1803', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1804', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt id="link-1805" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1805', 'pi', 'link-1758');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1806" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1806', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">        <tt id="link-1807" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1807', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1808" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1808', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1809" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1809', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1810" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1810', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1811" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1811', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt id="link-1812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1812', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1813', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1814" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1814', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1815" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1815', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1816', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1817" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1817', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1574"></a><tt class="py-lineno">1574</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_pi-expanded"><a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt id="link-1818" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1858', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt id="link-1859" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1859', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1860" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1860', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">        <tt id="link-1861" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1861', 'pi', 'link-1814');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1862" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1862', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt id="link-1863" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1863', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1864" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1864', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1865" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1865', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1866', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1867" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1867', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">        <tt id="link-1868" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1868', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1869', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1870" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1870', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1871" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1871', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1872" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1872', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1873', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1616"></a><tt class="py-lineno">1616</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_pi-expanded"><a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">        <tt id="link-1874" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1818', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1819" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1874', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1819', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1875', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1820', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt id="link-1821" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1821', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1822" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1876', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1877', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1822', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1823', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt id="link-1824" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1824', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1825" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1878', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1879" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1879', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">        <tt id="link-1880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1880', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1881" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1825', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt id="link-1826" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1826', 'pi', 'link-1758');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1827" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1827', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-1828" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1828', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1829', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1830" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1830', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1831', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1832', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt id="link-1833" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1833', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1834" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1834', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1835" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1835', 'pi', 'link-1758');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1836" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1836', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;?TARGET TEXT?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1837', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1838" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1838', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1587"></a><tt class="py-lineno">1587</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_comment-expanded"><a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">        <tt id="link-1839" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1881', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">        <tt id="link-1882" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1882', 'pi', 'link-1814');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1883" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1883', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">        <tt id="link-1884" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1884', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1885" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1885', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1886" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1886', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1887', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1888" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1888', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt id="link-1889" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1889', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1890', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1891" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1891', 'pi', 'link-1814');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1892" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1892', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;?TARGET TEXT?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1893', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1894" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1894', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1629"></a><tt class="py-lineno">1629</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_comment-expanded"><a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt id="link-1895" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1839', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1895', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1840', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1896', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1897" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1841', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt id="link-1842" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1842', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1897', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt id="link-1898" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1898', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1899" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1843', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1844', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt id="link-1845" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1845', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1899', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1900" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1900', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt id="link-1901" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1901', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1846', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1847', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">        <tt id="link-1848" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1848', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1849" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1902', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1903" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1903', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt id="link-1904" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1904', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1905" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1849', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt id="link-1850" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1850', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1851" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1851', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt id="link-1852" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1852', 'comment', 'link-1852');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1853" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1853', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt id="link-1854" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1854', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1855', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1856" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1856', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1857" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1857', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1858" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1858', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt id="link-1859" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1859', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1860', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1861" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1861', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1862" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1862', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;!--TEXT --&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1863" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1863', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1864', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1602"></a><tt class="py-lineno">1602</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_comment-expanded"><a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt id="link-1865" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1905', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt id="link-1906" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1906', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1907" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1907', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">        <tt id="link-1908" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1908', 'comment', 'link-1908');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1909" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1909', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt id="link-1910" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1910', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1911" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1911', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1912" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1912', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1913', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1914', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">        <tt id="link-1915" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1915', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1916" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1916', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1917" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1917', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1918" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1918', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;!--TEXT --&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1919" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1919', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1920" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1920', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1644"></a><tt class="py-lineno">1644</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_comment-expanded"><a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt id="link-1921" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1865', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1921', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1866', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1867" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1922', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1867', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">        <tt id="link-1868" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1868', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1923', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt id="link-1924" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1924', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1925" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1869', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1870" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1870', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt id="link-1871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1871', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1872" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1925', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1926', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt id="link-1927" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1927', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1872', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt id="link-1873" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1873', 'comment', 'link-1852');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1874" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1874', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">        <tt id="link-1875" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1875', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1876', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1877" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1877', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1878', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1879" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1879', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt id="link-1880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1880', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1881', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1882" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1882', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1883" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1883', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;!--TEXT --&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1884', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1885" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1885', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L1615"></a><tt class="py-lineno">1615</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_comment-expanded"><a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">        <tt id="link-1886" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1928', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">        <tt id="link-1929" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1929', 'comment', 'link-1908');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1930" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1930', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">        <tt id="link-1931" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1931', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1932', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1933', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1934', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1935" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1935', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt id="link-1936" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1936', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1937" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1937', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1938" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1938', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1939" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1939', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;!--TEXT --&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1940" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1940', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1941', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L1657"></a><tt class="py-lineno">1657</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_comment-expanded"><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt id="link-1942" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1886', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1942', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1887', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1888" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1943', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1944" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1888', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">        <tt id="link-1889" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1889', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1944', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt id="link-1945" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1945', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1946" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1890', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1891" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1891', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt id="link-1892" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1892', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1946', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1947" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1947', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt id="link-1948" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1948', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1893', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1894" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1894', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">        <tt id="link-1895" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1895', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1896" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1949', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1950', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt id="link-1951" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1951', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1952" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1896', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">        <tt id="link-1897" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1897', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1898" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1898', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">        <tt id="link-1899" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1899', 'comment', 'link-1852');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1900" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1900', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">        <tt id="link-1901" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1901', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1902', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1903" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1903', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1904', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1905" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1905', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt id="link-1906" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1906', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1907', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1908" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1908', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1909" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1909', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;!--TEXT --&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1910', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1911" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1911', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L1630"></a><tt class="py-lineno">1630</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-expanded"><a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt id="link-1912" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1952', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt id="link-1953" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1953', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1954" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1954', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt id="link-1955" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1955', 'comment', 'link-1908');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1956" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1956', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt id="link-1957" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1957', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1958" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1958', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1959" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1959', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1960', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1961', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt id="link-1962" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1962', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1963', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1964', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1965" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1965', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;!--TEXT --&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1966', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1967', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L1672"></a><tt class="py-lineno">1672</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-expanded"><a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt id="link-1968" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1912', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1968', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1969" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1913', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1914" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1969', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1970" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1914', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt id="link-1915" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1915', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1916" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1970', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">        <tt id="link-1971" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1971', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1972" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1916', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1917" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1917', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt id="link-1918" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1918', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1919" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1972', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1973" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1973', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt id="link-1974" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1974', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1975" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1919', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt id="link-1920" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1920', 'comment', 'link-1852');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1921" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1921', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">        <tt id="link-1922" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1922', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1923', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1924', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1925" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1925', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1926', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt id="link-1927" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1927', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1928" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1928', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1929" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1929', 'comment', 'link-1852');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1930" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1930', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--TEXT --&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1931" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1931', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1932" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1932', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">    <tt class="py-comment"># ET's Elements have items() and key(), but not values()</tt> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_values"></a><div id="ETreeOnlyTestCase.test_attribute_values-def"><a name="L1644"></a><tt class="py-lineno">1644</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_values-expanded"><a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt id="link-1933" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1975', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt id="link-1976" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1976', 'comment', 'link-1908');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1977" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1977', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">        <tt id="link-1978" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1978', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1979" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1979', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1980" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1980', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1981" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1981', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1982" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1982', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">        <tt id="link-1983" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1983', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1984', 'addprevious', 'link-1681');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1985" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1985', 'comment', 'link-1908');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1986" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1986', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--TEXT --&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1987', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1988" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1988', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">    <tt class="py-comment"># ET's Elements have items() and key(), but not values()</tt> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_values"></a><div id="ETreeOnlyTestCase.test_attribute_values-def"><a name="L1686"></a><tt class="py-lineno">1686</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_values-expanded"><a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt id="link-1989" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1933', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1989', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1934', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1990', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1991" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1935', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">         </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt id="link-1936" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1936', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1937" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1991', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">         </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt id="link-1992" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1992', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1993" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1937', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1938', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">        <tt id="link-1939" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1993', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1994" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1994', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt id="link-1995" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1939', 'values', 'link-260');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-1940" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1940', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1995', 'values', 'link-260');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-1996" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1996', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1941', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">        <tt id="link-1942" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1997', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt id="link-1998" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1942', 'values', 'link-260');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1943" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1998', 'values', 'link-260');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1999" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1943', 'values', 'link-260');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">    <tt class="py-comment"># gives error in ElementTree</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_empty"></a><div id="ETreeOnlyTestCase.test_comment_empty-def"><a name="L1653"></a><tt class="py-lineno">1653</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_empty-expanded"><a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt id="link-1944" class="py-name"><a title="lxml.etree.Element
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1999', 'values', 'link-260');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">    <tt class="py-comment"># gives error in ElementTree</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_empty"></a><div id="ETreeOnlyTestCase.test_comment_empty-def"><a name="L1695"></a><tt class="py-lineno">1695</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_empty-expanded"><a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt id="link-2000" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1944', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2000', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2001" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1945', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1946" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2001', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1946', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt id="link-1947" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1947', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1948" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2002', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt id="link-2003" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2003', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2004" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1948', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1949', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1950" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2004', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2005', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2006" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1950', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1951" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1951', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-1952" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1952', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">            <tt id="link-1953" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1953', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!----&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1954" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1954', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_parse_empty"></a><div id="ETreeOnlyTestCase.test_comment_parse_empty-def"><a name="L1664"></a><tt class="py-lineno">1664</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_parse_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_parse_empty-expanded"><a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt id="link-1955" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2006', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2007" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2007', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2008" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2008', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">            <tt id="link-2009" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2009', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!----&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2010', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_parse_empty"></a><div id="ETreeOnlyTestCase.test_comment_parse_empty-def"><a name="L1706"></a><tt class="py-lineno">1706</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_parse_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_parse_empty-expanded"><a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt id="link-2011" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1955', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1956" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2011', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2012" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1956', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2012', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2013" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1957', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt id="link-1958" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1958', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1959" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2013', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt id="link-2014" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2014', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2015" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1959', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1960', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt id="link-1961" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1961', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1962" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1962', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;!----&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1963" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1963', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1964" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2015', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2016', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">        <tt id="link-2017" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2017', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2018" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2018', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;!----&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2019" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2019', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2020" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1964', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1965" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1965', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">            <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2020', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2021" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2021', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">            <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1966', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">            <tt id="link-1967" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1967', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">            <tt id="link-1968" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1968', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_no_proxy_yet"></a><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-def"><a name="L1680"></a><tt class="py-lineno">1680</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_no_proxy_yet-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_no_proxy_yet');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-expanded"><a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">        <tt id="link-1969" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2022', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">            <tt id="link-2023" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2023', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">            <tt id="link-2024" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2024', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_no_proxy_yet"></a><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-def"><a name="L1722"></a><tt class="py-lineno">1722</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_no_proxy_yet-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_no_proxy_yet');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-expanded"><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt id="link-2025" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1969', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1970" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2025', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2026" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1970', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1971" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2026', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2027" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1971', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">         </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;!-- hoi --&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1972" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2027', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">         </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;!-- hoi --&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2028" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1972', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1973" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1973', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</tt><tt class="py-op">,</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1974" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2028', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2029', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</tt><tt class="py-op">,</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1974', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line"> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">    <tt class="py-comment"># does not raise an exception in ElementTree</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_immutable"></a><div id="ETreeOnlyTestCase.test_comment_immutable-def"><a name="L1691"></a><tt class="py-lineno">1691</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_immutable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable-expanded"><a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt id="link-1975" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2030', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">    <tt class="py-comment"># does not raise an exception in ElementTree</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_immutable"></a><div id="ETreeOnlyTestCase.test_comment_immutable-def"><a name="L1733"></a><tt class="py-lineno">1733</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_immutable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable-expanded"><a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt id="link-2031" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1975', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1976" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2031', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2032" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1976', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1977" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2032', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1977', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt id="link-1978" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1978', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1979" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2033', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt id="link-2034" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2034', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2035" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1979', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1980" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1980', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line"> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1981" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1981', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1982" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2035', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2036', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2037" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2037', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2038" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1982', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line"> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1983" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1983', 'append', 'link-673');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1984', 'insert', 'link-7');">insert</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1985" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1985', 'set', 'link-236');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_comment_immutable_attrib"></a><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-def"><a name="L1702"></a><tt class="py-lineno">1702</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable_attrib">test_comment_immutable_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-expanded"><a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1986" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2038', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2039" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2039', 'append', 'link-673');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-2040', 'insert', 'link-7');">insert</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2041', 'set', 'link-236');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_comment_immutable_attrib"></a><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-def"><a name="L1744"></a><tt class="py-lineno">1744</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable_attrib">test_comment_immutable_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-expanded"><a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2042" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1986', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1987', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1988" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2042', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2043" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2043', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1988', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1989', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2044', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2045" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2045', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1990', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-1991" class="py-name" targets="Method lxml.etree._Attrib.__contains__()=lxml.etree._Attrib-class.html#__contains__,Method lxml.etree._Element.__contains__()=lxml.etree._Element-class.html#__contains__,Method lxml.etree._IDDict.__contains__()=lxml.etree._IDDict-class.html#__contains__,Method lxml.etree._ListErrorLog.__contains__()=lxml.etree._ListErrorLog-class.html#__contains__,Method lxml.html.FieldsDict.__contains__()=lxml.html.FieldsDict-class.html#__contains__,Method lxml.html.InputGetter.__contains__()=lxml.html.InputGetter-class.html#__contains__"><a title="lxml.etree._Attrib.__contains__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2046', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name" targets="Method lxml.etree._Attrib.__contains__()=lxml.etree._Attrib-class.html#__contains__,Method lxml.etree._Element.__contains__()=lxml.etree._Element-class.html#__contains__,Method lxml.etree._IDDict.__contains__()=lxml.etree._IDDict-class.html#__contains__,Method lxml.etree._ListErrorLog.__contains__()=lxml.etree._ListErrorLog-class.html#__contains__,Method lxml.html.FieldsDict.__contains__()=lxml.html.FieldsDict-class.html#__contains__,Method lxml.html.InputGetter.__contains__()=lxml.html.InputGetter-class.html#__contains__"><a title="lxml.etree._Attrib.__contains__
 lxml.etree._Element.__contains__
 lxml.etree._IDDict.__contains__
 lxml.etree._ListErrorLog.__contains__
 lxml.html.FieldsDict.__contains__
-lxml.html.InputGetter.__contains__" class="py-name" href="#" onclick="return doclink('link-1991', '__contains__', 'link-1991');">__contains__</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1992" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1992', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1993" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.__contains__" class="py-name" href="#" onclick="return doclink('link-2047', '__contains__', 'link-2047');">__contains__</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2048" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2048', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1993', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1994', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1995" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2049', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2050" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2050', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2051" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1995', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-1996" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2051', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1996', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1997', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1998" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2052', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2053" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2053', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2054" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1998', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-1999" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2054', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2055" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1999', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2000', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'huhu'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2001" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2055', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2056" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2056', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'huhu'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2001', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2057', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2058" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2002', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2058', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2003', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2004" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2059', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2004', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2060', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2061" class="py-name"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2005', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2061', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2006', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2007" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2062', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2063" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2007', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2008" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2063', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2064" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2008', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2009" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2064', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2009', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2065', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2066" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2010', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name" targets="Method lxml.etree._Attrib.iterkeys()=lxml.etree._Attrib-class.html#iterkeys,Method lxml.etree._IDDict.iterkeys()=lxml.etree._IDDict-class.html#iterkeys"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2011', 'iterkeys', 'link-2011');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2012" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2066', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2067" class="py-name" targets="Method lxml.etree._Attrib.iterkeys()=lxml.etree._Attrib-class.html#iterkeys,Method lxml.etree._IDDict.iterkeys()=lxml.etree._IDDict-class.html#iterkeys"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2067', 'iterkeys', 'link-2067');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2068" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2012', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2013" class="py-name" targets="Method lxml.etree._Attrib.iteritems()=lxml.etree._Attrib-class.html#iteritems,Method lxml.etree._IDDict.iteritems()=lxml.etree._IDDict-class.html#iteritems"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2013', 'iteritems', 'link-2013');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2014" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2068', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name" targets="Method lxml.etree._Attrib.iteritems()=lxml.etree._Attrib-class.html#iteritems,Method lxml.etree._IDDict.iteritems()=lxml.etree._IDDict-class.html#iteritems"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2069', 'iteritems', 'link-2069');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2014', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2015" class="py-name" targets="Method lxml.etree._Attrib.itervalues()=lxml.etree._Attrib-class.html#itervalues,Method lxml.etree._IDDict.itervalues()=lxml.etree._IDDict-class.html#itervalues"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2015', 'itervalues', 'link-2015');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'HUHU'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2070', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2071" class="py-name" targets="Method lxml.etree._Attrib.itervalues()=lxml.etree._Attrib-class.html#itervalues,Method lxml.etree._IDDict.itervalues()=lxml.etree._IDDict-class.html#itervalues"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2071', 'itervalues', 'link-2071');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'HUHU'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2016', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2017" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2017', 'pop', 'link-2017');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'HUHU'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2072', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2073', 'pop', 'link-2073');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'HUHU'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2074" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2018', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2019" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2019', 'pop', 'link-2017');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2020" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2074', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2075" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2075', 'pop', 'link-2073');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line"> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2076" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2020', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2021" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2076', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2077" class="py-name"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
 lxml.etree._IDDict.__getitem__
 lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
-lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2021', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2077', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2078" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2022', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2023" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2078', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2079" class="py-name"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
 lxml.etree._IDDict.__getitem__
 lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
-lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2023', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2024" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2079', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2024', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2080', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
 lxml.etree._IDDict.__getitem__
 lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
-lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2025', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2026" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2081', '__getitem__', 'link-722');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2082" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2026', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2027" class="py-name"><a title="lxml.etree._Attrib.__setitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2082', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2083" class="py-name"><a title="lxml.etree._Attrib.__setitem__
 lxml.etree._Element.__setitem__
 lxml.html.FieldsDict.__setitem__
-lxml.objectify.ObjectifiedElement.__setitem__" class="py-name" href="#" onclick="return doclink('link-2027', '__setitem__', 'link-1611');">__setitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'yep'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__setitem__" class="py-name" href="#" onclick="return doclink('link-2083', '__setitem__', 'link-1611');">__setitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">,</tt> <tt class="py-string">'yep'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2028', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name" targets="Method lxml.etree._Attrib.__delitem__()=lxml.etree._Attrib-class.html#__delitem__,Method lxml.etree._Element.__delitem__()=lxml.etree._Element-class.html#__delitem__,Method lxml.html.FieldsDict.__delitem__()=lxml.html.FieldsDict-class.html#__delitem__,Method lxml.objectify.ObjectifiedElement.__delitem__()=lxml.objectify.ObjectifiedElement-class.html#__delitem__"><a title="lxml.etree._Attrib.__delitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2084', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2085" class="py-name" targets="Method lxml.etree._Attrib.__delitem__()=lxml.etree._Attrib-class.html#__delitem__,Method lxml.etree._Element.__delitem__()=lxml.etree._Element-class.html#__delitem__,Method lxml.html.FieldsDict.__delitem__()=lxml.html.FieldsDict-class.html#__delitem__,Method lxml.objectify.ObjectifiedElement.__delitem__()=lxml.objectify.ObjectifiedElement-class.html#__delitem__"><a title="lxml.etree._Attrib.__delitem__
 lxml.etree._Element.__delitem__
 lxml.html.FieldsDict.__delitem__
-lxml.objectify.ObjectifiedElement.__delitem__" class="py-name" href="#" onclick="return doclink('link-2029', '__delitem__', 'link-2029');">__delitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">    <tt class="py-comment"># test passing 'None' to dump()</tt> </tt>
-<a name="ETreeOnlyTestCase.test_dump_none"></a><div id="ETreeOnlyTestCase.test_dump_none-def"><a name="L1730"></a><tt class="py-lineno">1730</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dump_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dump_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_dump_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dump_none-expanded"><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree
+lxml.objectify.ObjectifiedElement.__delitem__" class="py-name" href="#" onclick="return doclink('link-2085', '__delitem__', 'link-2085');">__delitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line"> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">    <tt class="py-comment"># test passing 'None' to dump()</tt> </tt>
+<a name="ETreeOnlyTestCase.test_dump_none"></a><div id="ETreeOnlyTestCase.test_dump_none-def"><a name="L1772"></a><tt class="py-lineno">1772</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dump_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dump_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_dump_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dump_none-expanded"><a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2086" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2030', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2031" class="py-name" targets="Function lxml.etree.dump()=lxml.etree-module.html#dump,Function lxml.objectify.dump()=lxml.objectify-module.html#dump"><a title="lxml.etree.dump
-lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2031', 'dump', 'link-2031');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L1733"></a><tt class="py-lineno">1733</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix-expanded"><a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt id="link-2032" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2086', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2087" class="py-name" targets="Function lxml.etree.dump()=lxml.etree-module.html#dump,Function lxml.objectify.dump()=lxml.objectify-module.html#dump"><a title="lxml.etree.dump
+lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2087', 'dump', 'link-2087');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L1775"></a><tt class="py-lineno">1775</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix-expanded"><a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt id="link-2088" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2032', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2088', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2089" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2033', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2034" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2089', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2090" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2034', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">         </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:foo="http://www.infrae.com/ns/1"&gt;&lt;foo:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2035" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2090', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">         </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:foo="http://www.infrae.com/ns/1"&gt;&lt;foo:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2091" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2035', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2036', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2037" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2037', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2038', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L1746"></a><tt class="py-lineno">1746</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix_default_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix_default_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_prefix_default_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix_default_ns-expanded"><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">        <tt id="link-2039" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2091', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2092', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2093" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2093', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2094', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L1788"></a><tt class="py-lineno">1788</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix_default_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix_default_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_prefix_default_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix_default_ns-expanded"><a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">        <tt id="link-2095" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2039', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2095', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2096" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2040', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2096', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2097" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2041', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">         </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://www.infrae.com/ns/1"&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2042" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2097', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">         </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://www.infrae.com/ns/1"&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2098" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2042', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2043" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2043', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2044', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2045" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2045', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L1759"></a><tt class="py-lineno">1759</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getparent-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getparent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getparent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getparent-expanded"><a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt id="link-2046" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2098', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2099" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2099', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2100', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2101" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2101', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L1801"></a><tt class="py-lineno">1801</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getparent-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getparent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getparent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getparent-expanded"><a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt id="link-2102" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2046', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2102', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2103" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2047', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2048" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2103', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2104" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2048', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt id="link-2049" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2049', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2050" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2104', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt id="link-2105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2105', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2106" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2050', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2051', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2052" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2106', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2107', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2108" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2052', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2054', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2055', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2056" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2108', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2109', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2111" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2111', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2112" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2056', 'getparent', 'link-2056');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2112', 'getparent', 'link-2112');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2113" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2057', 'getparent', 'link-2056');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2058" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2113', 'getparent', 'link-2112');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2058', 'getparent', 'link-2056');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2114', 'getparent', 'link-2112');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2115" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2059', 'getparent', 'link-2056');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2115', 'getparent', 'link-2112');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2060', 'getparent', 'link-2056');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L1780"></a><tt class="py-lineno">1780</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren-expanded"><a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt id="link-2061" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2116', 'getparent', 'link-2112');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L1822"></a><tt class="py-lineno">1822</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren-expanded"><a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt id="link-2117" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2061', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2117', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2118" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2062', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2063" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2118', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2119" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2063', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">         </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt id="link-2064" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2064', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2065" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2119', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">         </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt id="link-2120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2120', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2121" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2065', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2066" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2066', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2067" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2067', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2068" class="py-name" targets="Method lxml.etree._Element.iterchildren()=lxml.etree._Element-class.html#iterchildren"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2068', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2069', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2121', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2122" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2122', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2123', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name" targets="Method lxml.etree._Element.iterchildren()=lxml.etree._Element-class.html#iterchildren"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2124', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2125', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2126" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2070', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L1789"></a><tt class="py-lineno">1789</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-expanded"><a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt id="link-2071" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2126', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L1831"></a><tt class="py-lineno">1831</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-expanded"><a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">        <tt id="link-2127" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2071', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2127', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2128" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2072', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2128', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2129" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2073', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">         </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt id="link-2074" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2074', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2075" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2129', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">         </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">        <tt id="link-2130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2130', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2131" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2075', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2076" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2076', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2077" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2077', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2078" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2078', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2079" class="py-name" targets="Function lxml.tests.test_elementtree.reversed()=lxml.tests.test_elementtree-module.html#reversed"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2079', 'reversed', 'link-2079');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2080', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2131', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2132" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2132', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2133', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2134" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2134', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2135" class="py-name" targets="Function lxml.tests.test_elementtree.reversed()=lxml.tests.test_elementtree-module.html#reversed"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2135', 'reversed', 'link-2135');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2136" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2136', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2137" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2081', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L1798"></a><tt class="py-lineno">1798</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag-expanded"><a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">        <tt id="link-2082" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2137', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L1840"></a><tt class="py-lineno">1840</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag-expanded"><a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt id="link-2138" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2082', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2083" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2138', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2083', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2139', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2140" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2084', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">         </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt id="link-2085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2085', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2140', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">         </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt id="link-2141" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2141', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2142" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2086', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2087" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2087', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2088', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2089" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2089', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2090" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2142', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2143" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2143', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2144" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2144', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2145" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2145', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2146" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2090', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2091" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2091', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2146', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2147" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2147', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2092', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-def"><a name="L1807"></a><tt class="py-lineno">1807</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_posarg');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-expanded"><a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">        <tt id="link-2093" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2148', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-def"><a name="L1849"></a><tt class="py-lineno">1849</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_posarg');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-expanded"><a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt id="link-2149" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2093', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2149', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2094', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2150', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2095', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">        <tt id="link-2096" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2096', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2097" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2151', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"> </tt>
+<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt id="link-2152" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2152', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2153" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2097', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2098" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2098', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2099" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2099', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2100', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2101" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2101', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2102" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2153', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2154" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2154', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2155', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2156', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2157" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2157', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2158" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2102', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L1816"></a><tt class="py-lineno">1816</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-expanded"><a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt id="link-2103" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2158', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L1858"></a><tt class="py-lineno">1858</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-expanded"><a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">        <tt id="link-2159" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2103', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2104" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2159', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2160" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2104', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2105" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2160', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2105', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">         </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt id="link-2106" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2106', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2107" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2161', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">         </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt id="link-2162" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2162', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2163" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2107', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2108" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2108', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2109" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2109', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2110" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2110', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2111" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2111', 'reversed', 'link-2079');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2112" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2163', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2164" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2164', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2165" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2165', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2166', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2167" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2167', 'reversed', 'link-2135');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2168" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2112', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2113" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2113', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2168', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2169', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2114', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L1825"></a><tt class="py-lineno">1825</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-expanded"><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">        <tt id="link-2115" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2170', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L1867"></a><tt class="py-lineno">1867</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-expanded"><a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt id="link-2171" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2115', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2171', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2172" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2116', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2117" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2172', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2173" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2117', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt id="link-2118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2118', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2119" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2173', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line"> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">        <tt id="link-2174" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2174', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2175" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2119', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2120" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2120', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2121', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2122', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2123" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2175', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2176" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2176', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2177" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2177', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2178', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2179" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2123', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2124', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2179', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2180" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2180', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2125', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-def"><a name="L1834"></a><tt class="py-lineno">1834</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-expanded"><a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt id="link-2126" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2181', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-def"><a name="L1876"></a><tt class="py-lineno">1876</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_posarg-expanded"><a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">        <tt id="link-2182" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2126', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2127" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2182', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2127', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2128" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2183', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2128', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">        <tt id="link-2129" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2129', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2130" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2184', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line"> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt id="link-2185" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2185', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2186" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2130', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2131" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2131', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2132', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2133" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2133', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2134" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2134', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2186', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2187" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2187', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2188" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2188', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2189" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2189', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2190', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2191" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2135', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-def"><a name="L1843"></a><tt class="py-lineno">1843</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-expanded"><a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt id="link-2136" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2191', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-def"><a name="L1885"></a><tt class="py-lineno">1885</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-expanded"><a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt id="link-2192" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2136', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2137" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2192', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2137', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2138" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2193', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2138', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line"> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">        <tt id="link-2139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2139', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2140" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2194', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt id="link-2195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2195', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2196" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2140', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2141" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2141', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2142" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2142', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2143" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2143', 'iterchildren', 'link-2068');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2144" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2144', 'reversed', 'link-2079');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2196', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2197" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2197', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2198" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2198', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2199" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2199', 'iterchildren', 'link-2124');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2200" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-2200', 'reversed', 'link-2135');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2201" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2145', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2146" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2146', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2147" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2201', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2202" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2202', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2203" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2147', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L1852"></a><tt class="py-lineno">1852</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors-expanded"><a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt id="link-2148" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2203', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L1894"></a><tt class="py-lineno">1894</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors-expanded"><a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">        <tt id="link-2204" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2148', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2204', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2205" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2149', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2205', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2206" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2150', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt id="link-2151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2151', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2152" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2206', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">        <tt id="link-2207" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2207', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2152', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2153', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2154" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2208', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2209" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2209', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2154', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2155', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2156', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2157', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2158" class="py-name" targets="Method lxml.etree._Element.iterancestors()=lxml.etree._Element-class.html#iterancestors"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2158', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2159" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2159', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2160" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2160', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2161', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L1873"></a><tt class="py-lineno">1873</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag-expanded"><a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt id="link-2162" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2210', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2211', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2212" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2212', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2213" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2213', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name" targets="Method lxml.etree._Element.iterancestors()=lxml.etree._Element-class.html#iterancestors"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2214', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2215', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2216" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2216', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2217', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L1915"></a><tt class="py-lineno">1915</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag-expanded"><a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt id="link-2218" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2162', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2163" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2218', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2219" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2163', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2219', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2164', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt id="link-2165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2165', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2220', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt id="link-2221" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2221', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2222" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2166', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2167', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2168" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2222', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2223', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line"> </tt>
+<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2168', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2169" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2169', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2170" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2170', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2171" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2171', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2172" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2172', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2173" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2173', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2174" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2224', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2225', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2226', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2227" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2227', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2228', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2229', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2230" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2174', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2175" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2175', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2176', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2177" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2230', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line"> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2231', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2232', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2233" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2177', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L1895"></a><tt class="py-lineno">1895</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-expanded"><a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">        <tt id="link-2178" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2233', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L1937"></a><tt class="py-lineno">1937</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-expanded"><a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt id="link-2234" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2178', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2179" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2179', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2180" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2235', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2180', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt id="link-2181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2181', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2182" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2236', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt id="link-2237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2237', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2238" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2182', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2183', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line"> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2184" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2238', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2239" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2239', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line"> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2240" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2184', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2185" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2185', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2186', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2187" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2187', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2188" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2188', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2189" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2240', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2241', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2242" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2242', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2243" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2243', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2244', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2245" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2189', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2190', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line"> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2191" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2191', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2192" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2245', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2246', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line"> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2247" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2247', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2248" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2192', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2193', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line"> </tt>
-<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2194', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2195" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2248', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2249" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2249', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line"> </tt>
+<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2250" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2250', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2195', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2196', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line"> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2197" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2197', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2198" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2251', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2252" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2252', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line"> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2253', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2254" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2198', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2199" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2199', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line"> </tt>
-<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2200" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2200', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2201" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2254', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2255', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line"> </tt>
+<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2256', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2257" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2201', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2202" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2202', 'iterancestors', 'link-2158');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L1938"></a><tt class="py-lineno">1938</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants-expanded"><a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt id="link-2203" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2257', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2258', 'iterancestors', 'link-2214');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L1980"></a><tt class="py-lineno">1980</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants-expanded"><a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">        <tt id="link-2259" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2203', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2259', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2260" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2204', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2205" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2260', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2205', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt id="link-2206" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2206', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2207" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2261', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt id="link-2262" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2262', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2263" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2207', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2208', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line"> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2209" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2264', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line"> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2265" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2209', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2210', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2211', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2212" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2212', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2213" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2213', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line"> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name" targets="Method lxml.etree._Element.iterdescendants()=lxml.etree._Element-class.html#iterdescendants"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2214', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2215', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L1955"></a><tt class="py-lineno">1955</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-expanded"><a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">        <tt id="link-2216" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2265', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2266" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2266', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2267" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2267', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2268', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2269" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2269', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line"> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name" targets="Method lxml.etree._Element.iterdescendants()=lxml.etree._Element-class.html#iterdescendants"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2270', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2271" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2271', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L1997"></a><tt class="py-lineno">1997</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-expanded"><a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">        <tt id="link-2272" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2216', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2272', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2217', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2218" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2273', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2218', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">        <tt id="link-2219" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2219', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2274', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">        <tt id="link-2275" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2275', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2220', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2221" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2221', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line"> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2222" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2222', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2223', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2224', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2225', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2226', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line"> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2227', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2228', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2229" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2276', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2277" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2277', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line"> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2278" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2278', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2279" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2279', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2280" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2280', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2281" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2281', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2282', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line"> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2283" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2283', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2284', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2285" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2229', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line"> </tt>
-<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2230" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2230', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2231', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line"> </tt>
-<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2232', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2233" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2233', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2234" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2285', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line"> </tt>
+<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2286', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2287', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line"> </tt>
+<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2288', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2289', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2290" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2234', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L1984"></a><tt class="py-lineno">1984</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-expanded"><a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt id="link-2235" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2290', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L2026"></a><tt class="py-lineno">2026</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-expanded"><a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">        <tt id="link-2291" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2235', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2291', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2236', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2237" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2292', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2293" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2237', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">        <tt id="link-2238" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2238', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2239" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2293', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt id="link-2294" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2294', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2295" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2239', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2240', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line"> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2241" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2295', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2296', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line"> </tt>
+<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2297" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2241', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2242" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2242', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2243" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2243', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2244" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2244', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2245', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line"> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2246', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2247" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2297', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2298', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2299" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2299', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2300', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2301" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2301', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line"> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2302', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2303" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2247', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2248" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2248', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line"> </tt>
-<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2249" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2249', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2250" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2250', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2303', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2304" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2304', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line"> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2305" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2305', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2306', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2307" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2251', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2252" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2252', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line"> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2253', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2254" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2307', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2308" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2308', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line"> </tt>
+<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2309" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2309', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2310" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2254', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2255', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line"> </tt>
-<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2256', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2257" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2310', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2311', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line"> </tt>
+<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2312', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2313" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2257', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2258', 'iterdescendants', 'link-2214');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L2023"></a><tt class="py-lineno">2023</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getroottree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getroottree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getroottree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getroottree-expanded"><a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">        <tt id="link-2259" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2313', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2314" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2314', 'iterdescendants', 'link-2270');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L2065"></a><tt class="py-lineno">2065</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getroottree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getroottree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getroottree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getroottree-expanded"><a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt id="link-2315" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2259', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2260" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2315', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2260', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2316', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2261', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">        <tt id="link-2262" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2262', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2263" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2317', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">        <tt id="link-2318" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2318', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2319" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2264', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line"> </tt>
-<a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2265" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2319', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2320', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line"> </tt>
+<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2321" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2265', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2266" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2266', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2267" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2267', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2268', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2269" class="py-name" targets="Method lxml.etree._Element.getroottree()=lxml.etree._Element-class.html#getroottree"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2269', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2270', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2271" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2271', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2272" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2272', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2273', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2274', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L2041"></a><tt class="py-lineno">2041</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getnext-expanded"><a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">        <tt id="link-2275" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2321', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2322" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2322', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2323" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2323', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2324', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name" targets="Method lxml.etree._Element.getroottree()=lxml.etree._Element-class.html#getroottree"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2325', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2326', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2327', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2328', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2329', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2330', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L2083"></a><tt class="py-lineno">2083</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getnext-expanded"><a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt id="link-2331" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2275', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2331', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2332" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2276', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2277" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2332', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2277', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt id="link-2278" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2278', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2333', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2334', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2335" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2279', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2280" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2280', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line"> </tt>
-<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2281" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2335', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2336', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"> </tt>
+<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2337" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2281', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2282', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2283" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2283', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name" targets="Method lxml.etree._Element.getnext()=lxml.etree._Element-class.html#getnext"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2284', 'getnext', 'link-2284');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2285" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2285', 'getnext', 'link-2284');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2286" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2286', 'getnext', 'link-2284');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L2058"></a><tt class="py-lineno">2058</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getprevious-expanded"><a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">        <tt id="link-2287" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2337', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2338', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2339" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2339', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name" targets="Method lxml.etree._Element.getnext()=lxml.etree._Element-class.html#getnext"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2340', 'getnext', 'link-2340');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2341', 'getnext', 'link-2340');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2342" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2342', 'getnext', 'link-2340');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L2100"></a><tt class="py-lineno">2100</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getprevious-expanded"><a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt id="link-2343" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2287', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2343', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2289', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt id="link-2290" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2290', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2291" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2345', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt id="link-2346" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2346', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2347" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2291', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2292', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line"> </tt>
-<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2293" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2347', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2348', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"> </tt>
+<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2349" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2293', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2294" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2294', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2295" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2295', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2296" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2296', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2297" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2297', 'getprevious', 'link-2297');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
-<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2298', 'getprevious', 'link-2297');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2299" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2299', 'getprevious', 'link-2297');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L2076"></a><tt class="py-lineno">2076</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings-expanded"><a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">        <tt id="link-2300" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2349', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2350', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2351" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2351', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2352" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2352', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2353" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2353', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2354" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2354', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2355', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L2118"></a><tt class="py-lineno">2118</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings-expanded"><a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">        <tt id="link-2356" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2300', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2301" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2356', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2357" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2301', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2357', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2302', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">        <tt id="link-2303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2303', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2304" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2358', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line">        <tt id="link-2359" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2359', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2304', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2305', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line"> </tt>
-<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2306" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2360', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2361" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2361', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line"> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2362" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2306', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2307" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2307', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2308" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2308', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2309" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2309', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2310" class="py-name" targets="Method lxml.etree._Element.itersiblings()=lxml.etree._Element-class.html#itersiblings"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2310', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2311', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2312', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2313', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2314" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2314', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L2100"></a><tt class="py-lineno">2100</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag-expanded"><a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt id="link-2315" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2362', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2363', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2364', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2365" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2365', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name" targets="Method lxml.etree._Element.itersiblings()=lxml.etree._Element-class.html#itersiblings"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2366', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2367', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2368', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2369" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2369', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2370', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L2142"></a><tt class="py-lineno">2142</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag-expanded"><a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt id="link-2371" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2315', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2371', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2372" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2316', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2372', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2317', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt id="link-2318" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2318', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2319" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2373', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">        <tt id="link-2374" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2374', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2375" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2319', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2320', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2321" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2375', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2376', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line"> </tt>
+<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2377" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2321', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2322" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2322', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2323" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2323', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2324', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2325', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2326" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2377', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2378', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2379" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2379', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2380', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2381" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2381', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2382" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2326', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'XXX'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2327', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2328" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2382', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'XXX'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2383', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2384" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2328', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2329', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2384', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2385" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2385', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2386" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2330', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2331" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2331', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2332" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2386', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2387', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2388" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2332', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2333', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2334" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2388', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2389', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2390" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2334', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L2124"></a><tt class="py-lineno">2124</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-expanded"><a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt id="link-2335" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2390', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L2166"></a><tt class="py-lineno">2166</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-expanded"><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt id="link-2391" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2335', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2391', 'Element', 'link-64');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2336', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2337" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2392', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2393" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2337', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt id="link-2338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2338', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2339" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2393', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt id="link-2394" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2394', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2339', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2340', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line"> </tt>
-<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2341" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2395', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2396" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2396', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line"> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2397" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2341', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2342" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2342', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2343" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2343', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2344" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2344', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2345" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2345', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2346" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2346', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2347" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2397', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2398', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2399', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2400" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2400', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2401', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2402', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2403" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2347', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'XXX'</tt><tt class="py-op">,</tt> <tt class="py-string">'YYY'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2348', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2349" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2403', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'XXX'</tt><tt class="py-op">,</tt> <tt class="py-string">'YYY'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2404', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2349', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2350" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2350', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2351" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2405', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2406', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2407" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2351', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2352', 'itersiblings', 'link-2310');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2353" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2407', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2408', 'itersiblings', 'link-2366');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2409" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2353', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L2146"></a><tt class="py-lineno">2146</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parseid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parseid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parseid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parseid-expanded"><a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">        <tt id="link-2354" class="py-name" targets="Function lxml.etree.parseid()=lxml.etree-module.html#parseid"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2354', 'parseid', 'link-2354');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2409', 'tag', 'link-68');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L2188"></a><tt class="py-lineno">2188</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parseid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parseid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parseid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parseid-expanded"><a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">        <tt id="link-2410" class="py-name" targets="Function lxml.etree.parseid()=lxml.etree-module.html#parseid"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2410', 'parseid', 'link-2410');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2355', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2356', 'parseid', 'link-2354');">parseid</a></tt> </tt>
-<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt id="link-2357" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2411', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2412', 'parseid', 'link-2410');">parseid</a></tt> </tt>
+<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">        <tt id="link-2413" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2357', 'XML', 'link-212');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2413', 'XML', 'link-212');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2358', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2359" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2414', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2415" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2359', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2360" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2360', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
-<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2361" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2361', 'parseid', 'link-2354');">parseid</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt id="link-2362" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2362', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2363', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2364" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2415', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2416" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2416', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line"> </tt>
+<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2417', 'parseid', 'link-2410');">parseid</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt id="link-2418" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2418', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2419" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2419', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2420" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2364', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2365" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2365', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2366" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2366', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2367', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2368', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2369', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2370', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2371" class="py-name" targets="Method lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2371', '_checkIDDict', 'link-2371');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L2181"></a><tt class="py-lineno">2181</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XMLDTDID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID-expanded"><a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">        <tt id="link-2372" class="py-name" targets="Function lxml.etree.XMLDTDID()=lxml.etree-module.html#XMLDTDID"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2372', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2420', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2421" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2421', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2422" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2422', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2423', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2424', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2425', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2426', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name" targets="Method lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2427', '_checkIDDict', 'link-2427');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L2223"></a><tt class="py-lineno">2223</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XMLDTDID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID-expanded"><a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt id="link-2428" class="py-name" targets="Function lxml.etree.XMLDTDID()=lxml.etree-module.html#XMLDTDID"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2428', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2373', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2374', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt> </tt>
-<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">        <tt id="link-2375" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2429', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2430" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2430', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt> </tt>
+<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">        <tt id="link-2431" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2375', 'XML', 'link-212');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2431', 'XML', 'link-212');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2376', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2432', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2377', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2378" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2378', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line"> </tt>
-<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt id="link-2379" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2379', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2380" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2380', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2433', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2434" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2434', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line"> </tt>
+<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt id="link-2435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2435', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2436" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2436', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2381', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2382', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2383', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2384" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2384', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2385', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2386', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2387', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2388', '_checkIDDict', 'link-2371');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2215"></a><tt class="py-lineno">2215</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-expanded"><a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">        <tt id="link-2389" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2389', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2390', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2391', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt id="link-2392" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2392', 'XML', 'link-212');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2393" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2393', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2394', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2395" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2395', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line"> </tt>
-<a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">        <tt id="link-2396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2396', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2397" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2397', 'XMLDTDID', 'link-2372');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2437', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2438" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2438', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2439', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2440" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2440', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2441', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2442', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2443', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2444', '_checkIDDict', 'link-2427');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2257"></a><tt class="py-lineno">2257</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-expanded"><a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">        <tt id="link-2445" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2445', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2446', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2447" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2447', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt> </tt>
+<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt id="link-2448" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2448', 'XML', 'link-212');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2449', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2450" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2450', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2451" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2451', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line"> </tt>
+<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt id="link-2452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2452', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2453" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2453', 'XMLDTDID', 'link-2428');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2454" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2398', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2399" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2399', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2400', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2401', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2402', '_checkIDDict', 'link-2371');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2234"></a><tt class="py-lineno">2234</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._checkIDDict-toggle" onclick="return toggle('ETreeOnlyTestCase._checkIDDict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dic</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase._checkIDDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._checkIDDict-expanded"><a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2403" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2454', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2455', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2456', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2457" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2457', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2458" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2458', '_checkIDDict', 'link-2427');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2276"></a><tt class="py-lineno">2276</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._checkIDDict-toggle" onclick="return toggle('ETreeOnlyTestCase._checkIDDict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dic</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase._checkIDDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._checkIDDict-expanded"><a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2459" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2403', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2459', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2404', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2405', 'iteritems', 'link-2013');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2406', 'iteritems', 'link-2013');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2460', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2461', 'iteritems', 'link-2069');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2462" class="py-name"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2462', 'iteritems', 'link-2069');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2407', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2463', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2408', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2409" class="py-name"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2409', 'iterkeys', 'link-2011');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2410', 'iterkeys', 'link-2011');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2464', 'keys', 'link-259');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2465', 'iterkeys', 'link-2067');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2466" class="py-name"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2466', 'iterkeys', 'link-2067');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2467" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2411', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2467', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2412', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2413', 'itervalues', 'link-2015');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2414', 'itervalues', 'link-2015');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2253"></a><tt class="py-lineno">2253</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces-expanded"><a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt id="link-2415" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2468', 'values', 'link-260');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-name"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2469', 'itervalues', 'link-2071');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2470', 'itervalues', 'link-2071');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2295"></a><tt class="py-lineno">2295</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces-expanded"><a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt id="link-2471" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2415', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2416" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2471', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2416', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line"> </tt>
-<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2472', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line"> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2473" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2417', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2418" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2473', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2418', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2419" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2419', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2420', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">            <tt id="link-2421" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2421', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo:bar xmlns:foo="http://ns.infrae.com/foo"&gt;&lt;/foo:bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2422', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">         </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2265"></a><tt class="py-lineno">2265</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default-expanded"><a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">        <tt id="link-2423" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2474', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2475" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2475', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2476', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line">            <tt id="link-2477" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2477', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo:bar xmlns:foo="http://ns.infrae.com/foo"&gt;&lt;/foo:bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2478', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line">         </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2307"></a><tt class="py-lineno">2307</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default-expanded"><a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt id="link-2479" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2423', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2479', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2480" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2424', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line"> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2425" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2480', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line"> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2425', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2481', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2482" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2426', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2427" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2427', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2428" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2428', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2482', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2483" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2483', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2484" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2484', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2485" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2429', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">            <tt id="link-2430" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2430', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2431" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2431', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_and_attr"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-def"><a name="L2280"></a><tt class="py-lineno">2280</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_attr-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-expanded"><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">        <tt id="link-2432" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2485', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">            <tt id="link-2486" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2486', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2487', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_and_attr"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-def"><a name="L2322"></a><tt class="py-lineno">2322</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_attr-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-expanded"><a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt id="link-2488" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2432', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2488', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2433', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line"> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2434" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2489', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line"> </tt>
+<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2490" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2434', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2490', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2435', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2436" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2436', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2437" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2437', 'set', 'link-236');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/hoi}test'</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">            <tt id="link-2438" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2438', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi" hoi:test="value"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2439" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2439', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-def"><a name="L2291"></a><tt class="py-lineno">2291</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-expanded"><a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">        <tt id="link-2440" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2491', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2492" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2492', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2493', 'set', 'link-236');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/hoi}test'</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">            <tt id="link-2494" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2494', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi" hoi:test="value"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2495" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2495', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-def"><a name="L2333"></a><tt class="py-lineno">2333</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-expanded"><a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">        <tt id="link-2496" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2440', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2441" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2496', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2441', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line"> </tt>
-<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">        <tt id="link-2442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2442', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2443" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2497', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line"> </tt>
+<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt id="link-2498" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2498', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2499" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2443', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2499', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2500" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2444', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">                             <tt id="link-2445" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2445', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2446" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2500', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">                             <tt id="link-2501" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2501', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2502" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2446', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2447" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2502', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2503" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2447', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">                            <tt id="link-2448" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2448', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line"> </tt>
-<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2503', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">                            <tt id="link-2504" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2504', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line"> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2449', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2450" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2505', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2506" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2450', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">            <tt id="link-2451" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2451', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">            <tt id="link-2452" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2506', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">            <tt id="link-2507" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2507', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">            <tt id="link-2508" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2452', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2453', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line"> </tt>
-<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt id="link-2454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2454', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2455', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">            <tt id="link-2456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2456', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
-<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">            <tt id="link-2457" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2508', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2509" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2509', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line"> </tt>
+<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">        <tt id="link-2510" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2510', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2511', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">            <tt id="link-2512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2512', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">            <tt id="link-2513" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2457', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2458" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2458', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2459" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2459', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2312"></a><tt class="py-lineno">2312</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-expanded"><a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt id="link-2460" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2513', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2514', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2515', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2354"></a><tt class="py-lineno">2354</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-expanded"><a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">        <tt id="link-2516" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2460', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2516', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2461', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line"> </tt>
-<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt id="link-2462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2462', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2463" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2517', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line"> </tt>
+<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt id="link-2518" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2518', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2519" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2463', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2519', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2464', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2465" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2520', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2521" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2465', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2466" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2521', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2522" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2466', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">                            <tt id="link-2467" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2467', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line"> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2522', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">                            <tt id="link-2523" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2523', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line"> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2468', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2524', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2469', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">            <tt id="link-2470" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2470', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">            <tt id="link-2471" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2525', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">            <tt id="link-2526" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2526', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">            <tt id="link-2527" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2471', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2472', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line"> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt id="link-2473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2473', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2474', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">            <tt id="link-2475" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2475', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
-<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">            <tt id="link-2476" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2527', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2528', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line"> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">        <tt id="link-2529" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2529', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2530" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2530', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">            <tt id="link-2531" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2531', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line">            <tt id="link-2532" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2476', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2477', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2478', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-def"><a name="L2332"></a><tt class="py-lineno">2332</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-expanded"><a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt id="link-2479" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2532', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2533" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2533', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2534', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-def"><a name="L2374"></a><tt class="py-lineno">2374</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-expanded"><a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt id="link-2535" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2479', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2480" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2535', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2536" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2480', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line"> </tt>
-<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt id="link-2481" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2481', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2482" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2536', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line"> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt id="link-2537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2537', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2538" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2482', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2483" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2538', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2483', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2484" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2539', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2540" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2484', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2485" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2540', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2485', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">                            <tt id="link-2486" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2486', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line"> </tt>
-<a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2541', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line">                            <tt id="link-2542" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2542', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line"> </tt>
+<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2487', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2488" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2543', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2544" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2488', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line">            <tt id="link-2489" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2489', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">            <tt id="link-2490" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2544', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">            <tt id="link-2545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2545', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">            <tt id="link-2546" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2490', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2491', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line"> </tt>
-<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt id="link-2492" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2492', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2493', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">            <tt id="link-2494" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2494', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
-<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">            <tt id="link-2495" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2546', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2547', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line"> </tt>
+<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt id="link-2548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2548', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2549" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2549', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line">            <tt id="link-2550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2550', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">            <tt id="link-2551" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2495', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2496', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2497" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2497', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-def"><a name="L2354"></a><tt class="py-lineno">2354</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-expanded"><a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">        <tt id="link-2498" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2551', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2552', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2553" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2553', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-def"><a name="L2396"></a><tt class="py-lineno">2396</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-expanded"><a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt id="link-2554" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2498', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2499" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2554', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2555" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2499', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line"> </tt>
-<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt id="link-2500" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2500', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2501" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2555', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line"> </tt>
+<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">        <tt id="link-2556" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2556', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2557" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2501', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2557', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2558" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2502', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">                             <tt id="link-2503" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2503', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">                                    <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2504" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2558', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">                             <tt id="link-2559" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2559', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">                                    <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2560" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2504', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2560', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2505', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">                            <tt id="link-2506" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2506', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line"> </tt>
-<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2507" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2561', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">                            <tt id="link-2562" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2562', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line"> </tt>
+<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2507', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2563', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2508', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">            <tt id="link-2509" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2509', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">            <tt id="link-2510" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2564', 'attrib', 'link-219');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">            <tt id="link-2565" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2565', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">            <tt id="link-2566" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2510', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2511', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line"> </tt>
-<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">        <tt id="link-2512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2512', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2513', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line">            <tt id="link-2514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2514', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:root xmlns:test="http://test/ns" xmlns="http://test/ns"&gt;'</tt> </tt>
-<a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
-<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/test:root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">            <tt id="link-2515" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2566', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2567', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line"> </tt>
+<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">        <tt id="link-2568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2568', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2569', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">            <tt id="link-2570" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2570', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:root xmlns:test="http://test/ns" xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/test:root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">            <tt id="link-2571" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2515', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2516', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2517', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2377"></a><tt class="py-lineno">2377</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt id="link-2518" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2571', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2572', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2573', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2419"></a><tt class="py-lineno">2419</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt id="link-2574" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2518', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2519" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2574', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2519', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
-<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2520" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2575', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
+<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2576" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2520', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2576', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2521', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2522" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2522', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2523" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2577', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2578" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2578', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2579" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2523', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2579', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2524', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt id="link-2525" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2580', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt id="link-2581" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2525', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2526', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">            <tt id="link-2527" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2527', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2528', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2388"></a><tt class="py-lineno">2388</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt id="link-2529" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2581', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2582" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2582', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">            <tt id="link-2583" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2583', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2584', '_writeElement', 'link-317');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2430"></a><tt class="py-lineno">2430</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt id="link-2585" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2529', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2530" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2585', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2586" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2530', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line"> </tt>
-<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2531" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2586', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line"> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2587" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2531', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2587', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2588" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2532', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2533" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2533', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2534" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2588', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2589" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2589', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2590" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2534', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2535" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2590', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2591" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2535', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2536" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2536', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line"> </tt>
-<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2537" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2537', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line"> </tt>
-<a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2538" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2538', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2539', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2591', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2592" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2592', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line"> </tt>
+<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2593" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2593', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line"> </tt>
+<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2594', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2595" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2595', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2540', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2596', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2541', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2410"></a><tt class="py-lineno">2410</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt id="link-2542" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2597', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2452"></a><tt class="py-lineno">2452</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt id="link-2598" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2542', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2598', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2543', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line"> </tt>
-<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2544" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2599', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line"> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2600" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2544', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2600', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2601" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2545', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2546" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2546', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2547" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2601', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2602" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2602', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2603" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2547', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2548" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2603', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2604" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2548', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2549" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2549', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line"> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2550', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line"> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2551', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2552', 'prefix', 'link-2037');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2604', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2605" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2605', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line"> </tt>
+<a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2606', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line"> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2607', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2608" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2608', 'prefix', 'link-2093');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2553', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2609', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2554', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2432"></a><tt class="py-lineno">2432</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2555" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2610', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2474"></a><tt class="py-lineno">2474</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2611" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2555', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2556', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">            <tt id="link-2557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2557', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line"> </tt>
-<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2558" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2612', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">            <tt id="link-2613" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2613', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line"> </tt>
+<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2614" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2558', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2614', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2559', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">            <tt id="link-2560" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2560', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2561', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
-<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line"> </tt>
-<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2615', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">            <tt id="link-2616" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2616', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2617" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2617', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
+<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line"> </tt>
+<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2618" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2562', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">            <tt id="link-2563" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2563', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2618', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">            <tt id="link-2619" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2619', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2564', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2565', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2448"></a><tt class="py-lineno">2448</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt id="link-2566" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2566', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2567', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">        <tt id="link-2568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2568', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2620', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2621" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2621', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2489"></a><tt class="py-lineno">2489</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2490"></a><tt class="py-lineno">2490</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2622" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2622', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2623" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2623', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">        <tt id="link-2624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2624', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2569', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2570" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2625', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2626" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2570', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2571" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2571', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2572" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2572', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2626', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2627" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2627', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2628" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2628', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2573', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2574', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2575" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2575', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2576" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2629', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2630" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2630', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2631" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2631', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2576', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2577', 'cleanup_namespaces', 'link-2577');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2578" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2578', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">            <tt id="link-2579" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2579', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2633', 'cleanup_namespaces', 'link-2633');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2634', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">            <tt id="link-2635" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2635', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2580', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2581" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2581', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2582" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2582', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2458"></a><tt class="py-lineno">2458</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">        <tt id="link-2583" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2636', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2637', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2638', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2500"></a><tt class="py-lineno">2500</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt id="link-2639" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2583', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2639', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2584', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line"> </tt>
-<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2585" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2640', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line"> </tt>
+<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2641" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2585', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2586" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2586', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2587" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2587', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
-<a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2588" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2588', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2468"></a><tt class="py-lineno">2468</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt id="link-2589" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2642', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2643" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2643', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
+<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2644', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2510"></a><tt class="py-lineno">2510</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt id="link-2645" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2589', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2645', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2590', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line"> </tt>
-<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2591" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2646', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line"> </tt>
+<a name="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2647" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2591', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2647', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2592', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2593" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2593', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
-<a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line"> </tt>
-<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2594" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2648', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2649" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2649', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line"> </tt>
+<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2650" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2594', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2595" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2595', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2596" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2596', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line"> </tt>
-<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2650', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2651', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2652" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2652', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line"> </tt>
+<a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2653" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
-lxml.etree._ListErrorLog.copy" class="py-name" href="#" onclick="return doclink('link-2597', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2598" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-2598', 'update', 'link-2598');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2599', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2600" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2600', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2484"></a><tt class="py-lineno">2484</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt id="link-2601" class="py-name"><a title="lxml.etree
+lxml.etree._ListErrorLog.copy" class="py-name" href="#" onclick="return doclink('link-2653', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2654" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-2654', 'update', 'link-2654');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2655" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2655', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2656', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2526"></a><tt class="py-lineno">2526</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt id="link-2657" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2601', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2602" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2657', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2602', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2603" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2658', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2659" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2603', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2604" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2659', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2604', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2605" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2660', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2661" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2605', 'find', 'link-2605');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2606', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2489"></a><tt class="py-lineno">2489</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt id="link-2607" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2661', 'find', 'link-2661');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2662', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2531"></a><tt class="py-lineno">2531</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">        <tt id="link-2663" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2607', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2608" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2663', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2608', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2664', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2609', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2610', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2611" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2665', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt id="link-2666" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2666', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2612', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line"> </tt>
-<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2613" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2667', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2668', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line"> </tt>
+<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2669" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2613', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2614" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2614', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2615" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2615', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2616', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2617" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2617', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2618" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2618', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line"> </tt>
-<a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2619" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2619', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2620', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2621" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2621', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2622" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2622', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2623" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2623', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2516"></a><tt class="py-lineno">2516</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt id="link-2624" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2624', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2625', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2626" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2626', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt id="link-2627" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2627', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2628" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2628', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2629', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line"> </tt>
-<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2630" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2630', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2631" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2631', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2632" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2632', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2633" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2633', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2634" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2634', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2635" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2635', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line"> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2636', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2637', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2638" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2638', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2639" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2639', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2640', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2543"></a><tt class="py-lineno">2543</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">        <tt id="link-2641" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2641', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2642', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2643" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2643', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt id="link-2644" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2644', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2645', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2646', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line"> </tt>
-<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2647" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2647', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2648" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2648', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2649" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2649', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2650', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2651', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2652" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2652', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2653" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2653', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line"> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2654" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2654', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2655" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2655', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2656', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2657', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2658', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2659" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2659', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2660', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2661" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2661', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2662', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2583"></a><tt class="py-lineno">2583</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt id="link-2663" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2669', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2670" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2670', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2671" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2671', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2672" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2672', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2673" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2673', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2674" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2674', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line"> </tt>
+<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2675', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2676" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2676', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2677', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2678', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2679" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2679', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2558"></a><tt class="py-lineno">2558</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt id="link-2680" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2680', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2681', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2682" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2682', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt id="link-2683" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2683', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2684" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2684', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2685" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2685', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line"> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2686" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2686', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2687" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2687', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2688" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2688', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2689', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2690" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2690', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2691', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line"> </tt>
+<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2692" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2692', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2693" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2693', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2694', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2695" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2695', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2696" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2696', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2585"></a><tt class="py-lineno">2585</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">        <tt id="link-2697" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2697', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2698', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2699', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line">        <tt id="link-2700" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2700', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2701', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2702" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2702', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line"> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2703" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2703', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2704" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2704', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2705', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2706" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2706', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2707" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2707', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2708', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2709" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2709', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line"> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2710', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2711', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2712', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2713', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2714', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2715', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2716" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2716', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2717" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2717', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2718', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2625"></a><tt class="py-lineno">2625</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt id="link-2719" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2663', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2719', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2664', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2720', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2721" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2665', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">        <tt id="link-2666" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2666', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2721', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">        <tt id="link-2722" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2722', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2667', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2668', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line"> </tt>
-<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2669" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2723', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2724', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line"> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2725" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2669', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2670" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2670', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2671" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2671', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2672" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2672', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2673" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2673', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2674" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2674', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2675" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2675', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line"> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2676" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2676', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2677', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2678', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2605"></a><tt class="py-lineno">2605</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt id="link-2679" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2725', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2726" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2726', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2727', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2728" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2728', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2729', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2730" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2730', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2731', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line"> </tt>
+<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2732" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2732', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2733" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2733', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2734" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2734', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2647"></a><tt class="py-lineno">2647</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt id="link-2735" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2679', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2680" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2735', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2736" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2680', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2736', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2681', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">        <tt id="link-2682" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2682', 'Entity', 'link-1430');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2683" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2737', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt id="link-2738" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2738', 'Entity', 'link-1430');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2739" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2683', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2684" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2684', 'Entity', 'link-1430');">Entity</a></tt> </tt>
-<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">        <tt id="link-2685" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2685', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2686" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2739', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2740" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2740', 'Entity', 'link-1430');">Entity</a></tt> </tt>
+<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line">        <tt id="link-2741" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2741', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2686', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2687', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line"> </tt>
-<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2688" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2742', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2743', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line"> </tt>
+<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2744" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2688', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2689', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2690" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2690', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2691" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2691', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line"> </tt>
-<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2692" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2692', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2693" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2693', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line"> </tt>
-<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2694', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2695" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2695', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line"> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2696" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2696', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2697" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2697', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line"> </tt>
-<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2698', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2699" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2699', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2630"></a><tt class="py-lineno">2630</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt id="link-2700" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2744', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2745" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2745', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2746" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2746', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2747', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line"> </tt>
+<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2748" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2748', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2749" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2749', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line"> </tt>
+<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2750', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2751" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2751', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line"> </tt>
+<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2752" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2752', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2753" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2753', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line"> </tt>
+<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2754', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2755" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2755', 'Entity', 'link-1430');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2672"></a><tt class="py-lineno">2672</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt id="link-2756" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2700', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2756', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2757" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2701', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2702" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2757', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2702', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">        <tt id="link-2703" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2703', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2704" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2758', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">        <tt id="link-2759" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2759', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2704', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2705" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2705', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt id="link-2706" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2706', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2760', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2761', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt id="link-2762" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2762', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2763" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2707', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2708" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2708', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">        <tt id="link-2709" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2709', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2763', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2764', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">        <tt id="link-2765" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2765', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2710', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2711', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line"> </tt>
-<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2712" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2766', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2767" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2767', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line"> </tt>
+<a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2768" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2712', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2713" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2713', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2714', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2715" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2715', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2716" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2716', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2717" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2717', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2718', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line"> </tt>
-<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2719" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2719', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2720" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2768', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2769" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2769', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2770" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2770', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2771" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2771', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2772" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2772', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2773" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2773', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2774" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2774', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line"> </tt>
+<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2775', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2776" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2720', 'Element', 'link-64');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2646"></a><tt class="py-lineno">2646</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
-<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt id="link-2721" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2776', 'Element', 'link-64');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2688"></a><tt class="py-lineno">2688</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
+<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt id="link-2777" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2721', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2777', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2778" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2722', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2723', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt id="link-2724" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2724', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2779', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">        <tt id="link-2780" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2780', 'Comment', 'link-470');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2781" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2725', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2726', 'Comment', 'link-470');">Comment</a></tt> </tt>
-<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line">        <tt id="link-2727" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2727', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2781', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2782', 'Comment', 'link-470');">Comment</a></tt> </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line">        <tt id="link-2783" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2783', 'PI', 'link-468');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2728', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2729" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2729', 'PI', 'link-468');">PI</a></tt> </tt>
-<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt id="link-2730" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2730', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2731" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2784', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2785', 'PI', 'link-468');">PI</a></tt> </tt>
+<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt id="link-2786" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2786', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2731', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2732" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2732', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line"> </tt>
-<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2733" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2787', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2788" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2788', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line"> </tt>
+<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2789" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2733', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2734" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2734', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2735" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2735', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2736" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2736', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2737', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2738" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2738', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2739" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2739', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line"> </tt>
-<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2740" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2740', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2663"></a><tt class="py-lineno">2663</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt id="link-2741" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2789', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2790" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2790', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2791" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2791', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2792', 'Comment', 'link-470');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2793', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-2794" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2794', 'PI', 'link-468');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2795" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2795', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line"> </tt>
+<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2796" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2796', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2705"></a><tt class="py-lineno">2705</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line">        <tt id="link-2797" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2741', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2797', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2742', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2798', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2799" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2743', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">        <tt id="link-2744" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2799', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt id="link-2800" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2744', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2745" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2800', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2801" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2745', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2746" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2801', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2802" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2746', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt id="link-2747" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2747', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2748" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2802', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt id="link-2803" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2803', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2748', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2749" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2749', 'QName', 'link-152');">QName</a></tt> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2804', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2805" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2805', 'QName', 'link-152');">QName</a></tt> </tt>
+<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2806" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2750', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2751" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2806', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2807" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2751', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2752" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2752', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2807', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2808" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2808', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2809" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2753', 'find', 'link-2605');">find</a></tt><tt class="py-op">(</tt><tt id="link-2754" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2754', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2755', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2670"></a><tt class="py-lineno">2670</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">        <tt id="link-2756" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2809', 'find', 'link-2661');">find</a></tt><tt class="py-op">(</tt><tt id="link-2810" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2810', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2811', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2712"></a><tt class="py-lineno">2712</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line">        <tt id="link-2812" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2756', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2757" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2812', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2757', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2813', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2814" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2758', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">        <tt id="link-2759" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2814', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt id="link-2815" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2759', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2815', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2760', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2761', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt id="link-2762" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2762', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2763" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2817', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt id="link-2818" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2818', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2763', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2764', 'QName', 'link-152');">QName</a></tt> </tt>
-<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2765" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2819', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2820" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2820', 'QName', 'link-152');">QName</a></tt> </tt>
+<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2821" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2765', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2766" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2821', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2822" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2766', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2767" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2767', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2768" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2768', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2769" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2769', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2677"></a><tt class="py-lineno">2677</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line">        <tt id="link-2770" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2822', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2823" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2823', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2824" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2824', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2825" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2825', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2719"></a><tt class="py-lineno">2719</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">        <tt id="link-2826" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2770', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2826', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2827" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2771', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2772" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2827', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2772', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt id="link-2773" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2828', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt id="link-2829" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2773', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2774" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2829', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2830" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2774', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2830', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2831" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2775', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt id="link-2776" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2776', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2777" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2831', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line">        <tt id="link-2832" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2832', 'QName', 'link-152');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2833" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2777', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2778" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2778', 'QName', 'link-152');">QName</a></tt> </tt>
-<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2779" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2833', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2834', 'QName', 'link-152');">QName</a></tt> </tt>
+<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2835" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2779', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2780" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2835', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2780', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">                <tt id="link-2781" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2781', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2782', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2783" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2783', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2784', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2785" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2785', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2686"></a><tt class="py-lineno">2686</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">        <tt id="link-2786" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2836', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">                <tt id="link-2837" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2837', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2838', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2839" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2839', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2840" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2840', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2841" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2841', 'QName', 'link-152');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2728"></a><tt class="py-lineno">2728</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt id="link-2842" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2786', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2842', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2843" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2787', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2788" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2843', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2844" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2788', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">        <tt id="link-2789" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2789', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2790" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2844', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">        <tt id="link-2845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2845', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2846" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2790', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2791" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2791', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2792', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2793', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2794', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2795" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2795', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2796" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2796', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2797', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2693"></a><tt class="py-lineno">2693</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">        <tt id="link-2798" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2846', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2847" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2847', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2848" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2848', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2849" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2849', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2850', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2851', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2852', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2853', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2735"></a><tt class="py-lineno">2735</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">        <tt id="link-2854" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2798', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2799" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2854', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2855" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2799', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2855', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2856" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2800', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">        <tt id="link-2801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2801', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2802" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2856', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt id="link-2857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2857', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2858" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2802', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2803" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2803', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line">        <tt id="link-2804" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2804', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2805" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2805', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2806" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2806', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2807" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2807', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2808" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2808', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2809" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2809', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2810" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2810', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2811" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2811', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2812" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2812', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2813" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2813', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt id="link-2814" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2814', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2815" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2815', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2816', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2817" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2817', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2818', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2819', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2820" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2820', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2821', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2822" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2822', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2823" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2823', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2705"></a><tt class="py-lineno">2705</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line">        <tt id="link-2824" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2858', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2859" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2859', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">        <tt id="link-2860" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2860', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2861" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2861', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2862" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2862', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2863" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2863', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2864', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2865', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2866" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2866', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2867" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2867', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2868', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2869" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2869', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt id="link-2870" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2870', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2871', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2872', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2873" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2873', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2874', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2875" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2875', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2876" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2876', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2877" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2877', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2878" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2878', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2879" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2879', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2747"></a><tt class="py-lineno">2747</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt id="link-2880" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2824', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2825" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2880', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2881" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2825', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2826" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2881', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2882" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2826', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt id="link-2827" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2827', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2828" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2882', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt id="link-2883" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2883', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2884" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2828', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2829', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt id="link-2830" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2830', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2831" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2831', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2832" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2832', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2833" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2833', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2834" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2834', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2835" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2835', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2836" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2836', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2837" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2837', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2838', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2839" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2839', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">        <tt id="link-2840" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2840', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2841', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2842', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2843" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2843', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2844" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2844', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2845', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2846" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2846', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2847" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2847', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2848', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2849" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2849', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2717"></a><tt class="py-lineno">2717</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt id="link-2850" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2884', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2885" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2885', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">        <tt id="link-2886" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2886', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2887" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2887', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2888" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2888', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2889" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2889', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2890" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2890', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2891', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2892" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2892', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2893" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2893', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2894', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2895" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2895', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt id="link-2896" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2896', 'nsmap', 'link-186');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2897', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2898', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2899" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2899', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2900" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2900', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2901" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2901', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2902" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2902', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2903', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2904" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2904', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2905" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2905', 'nsmap', 'link-186');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2759"></a><tt class="py-lineno">2759</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt id="link-2906" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2850', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2906', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2851', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2852" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2907', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2852', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">        <tt id="link-2853" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2853', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2854" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2908', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt id="link-2909" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2909', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2910" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2854', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2855" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2855', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2856" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2856', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2857" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2857', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2858" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2858', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2859', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
-<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2860" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2860', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2861', 'findall', 'link-2768');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2724"></a><tt class="py-lineno">2724</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">        <tt id="link-2862" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2910', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2911" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2911', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2912', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2913', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2914', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2915" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2915', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
+<a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2916" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2916', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2917" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2917', 'findall', 'link-2824');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2766"></a><tt class="py-lineno">2766</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt id="link-2918" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2862', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2863" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2918', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2919" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2863', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2864" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2919', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2920" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2864', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2920', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2921" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2865', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">            <tt id="link-2866" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2921', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">            <tt id="link-2922" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2866', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2867" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2867', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
-<a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2868', 'index', 'link-2868');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2869" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2869', 'index', 'link-2868');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2870', 'index', 'link-2868');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2871" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2871', 'index', 'link-2868');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2872', 'index', 'link-2868');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2873" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2873', 'index', 'link-2868');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2874" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2874', 'index', 'link-2868');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2875" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2875', 'index', 'link-2868');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2876', 'index', 'link-2868');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2750"></a><tt class="py-lineno">2750</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line">        <tt id="link-2877" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2922', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2923" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2923', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
+<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2924" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2924', 'index', 'link-2924');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2925" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2925', 'index', 'link-2924');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2926', 'index', 'link-2924');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2927', 'index', 'link-2924');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2928', 'index', 'link-2924');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2929" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2929', 'index', 'link-2924');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2930', 'index', 'link-2924');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2931" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2931', 'index', 'link-2924');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2932', 'index', 'link-2924');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2792"></a><tt class="py-lineno">2792</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt id="link-2933" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2877', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2878" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2933', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2934" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2878', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2879" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2934', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2935" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2879', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2935', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2936" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2880', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2881" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2936', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2937" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2881', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2882" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2882', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2883" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2937', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2938" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2938', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2939" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2883', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2884" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2884', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line"> </tt>
-<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line"> </tt>
-<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2885" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2885', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2886" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2939', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2940', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line"> </tt>
+<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line"> </tt>
+<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2941', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2942" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2886', 'text', 'link-189');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2887', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2888" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2888', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line"> </tt>
-<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2889', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2890" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2942', 'text', 'link-189');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2943', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2944" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2944', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line"> </tt>
+<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2945', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2890', 'text', 'link-189');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2891', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2786"></a><tt class="py-lineno">2786</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt id="link-2892" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2946', 'text', 'link-189');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2947" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2947', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2828"></a><tt class="py-lineno">2828</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line">        <tt id="link-2948" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2892', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2893" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2893', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2894" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2949', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2830"></a><tt class="py-lineno">2830</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2950" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2894', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2895" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2950', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2951" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2895', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">            <tt id="link-2896" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2951', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">            <tt id="link-2952" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2896', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2897', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line"> </tt>
-<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2898" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2952', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2953" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2953', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line"> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2954" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2898', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2899" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2954', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2899', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2900" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2955', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2956" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2900', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2901" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2901', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
-<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2902" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2902', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
-<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2903" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2956', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2957', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2958', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
+<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2842"></a><tt class="py-lineno">2842</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2959" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2903', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2904" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2904', 'tail', 'link-918');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2808"></a><tt class="py-lineno">2808</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt id="link-2905" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2959', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2960" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2960', 'tail', 'link-918');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2848"></a><tt class="py-lineno">2848</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2850"></a><tt class="py-lineno">2850</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">        <tt id="link-2961" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2905', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2906" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2961', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2962" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2906', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2962', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2963" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2907', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">        <tt id="link-2908" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2908', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2909" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2963', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt id="link-2964" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2964', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2965" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2909', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2910', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line"> </tt>
-<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2911" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2965', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2966', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line"> </tt>
+<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2967" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2911', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line"> </tt>
-<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2912" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2967', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line"> </tt>
+<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2968" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2912', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2913" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2968', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2969" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2913', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2914" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2969', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2970" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2914', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line"> </tt>
-<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2824"></a><tt class="py-lineno">2824</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt id="link-2915" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2970', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line"> </tt>
+<a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2866"></a><tt class="py-lineno">2866</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt id="link-2971" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2915', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2971', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2972" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2916', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2917" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2972', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2973" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2917', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">        <tt id="link-2918" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2918', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2919" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2973', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt id="link-2974" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2974', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2975" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2919', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2920" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2920', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line"> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2921" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2975', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2976', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line"> </tt>
+<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2977" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2921', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2922" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2922', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2830"></a><tt class="py-lineno">2830</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2923" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2923', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2924" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2924', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2925" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2925', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line"> </tt>
-<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2926" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2977', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2978" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2978', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2979" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2979', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2980" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2980', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2981" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2981', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line"> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2982" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2926', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2927" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2982', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2983" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2927', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line"> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2842"></a><tt class="py-lineno">2842</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt id="link-2928" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2983', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line"> </tt>
+<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2884"></a><tt class="py-lineno">2884</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt id="link-2984" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2928', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2929" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2984', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2929', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2985', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2986" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2930', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt id="link-2931" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2931', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2986', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt id="link-2987" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2987', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2988" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2932', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2933" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2933', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line"> </tt>
-<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2934" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2988', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2989', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line"> </tt>
+<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2990" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2934', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2935" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2935', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2848"></a><tt class="py-lineno">2848</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2936" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2936', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2937" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2937', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2938" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2938', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line"> </tt>
-<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2939" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2990', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2991" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2991', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2890"></a><tt class="py-lineno">2890</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2992" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2992', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2993" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2993', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2994" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2994', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line"> </tt>
+<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2995" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2939', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2940" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2995', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2996" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2940', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line"> </tt>
-<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2860"></a><tt class="py-lineno">2860</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt id="link-2941" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2996', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line"> </tt>
+<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2902"></a><tt class="py-lineno">2902</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt id="link-2997" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2941', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2942" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2997', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2942', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2998', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2943', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt id="link-2944" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2944', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2999', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt id="link-3000" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3000', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3001" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2945', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2946', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line"> </tt>
-<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2947" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3001', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3002', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line"> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3003" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2947', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2948" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2948', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2949" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2949', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2950" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2950', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2951" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2951', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line"> </tt>
-<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2952" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3003', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3004" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3004', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3005" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3005', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3006" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3006', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3007', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"> </tt>
+<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3008" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2952', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2953" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3008', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3009" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2953', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line"> </tt>
-<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2878"></a><tt class="py-lineno">2878</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt id="link-2954" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3009', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line"> </tt>
+<a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2920"></a><tt class="py-lineno">2920</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">        <tt id="link-3010" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2954', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3010', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3011" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2955', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2956" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3011', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2956', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt id="link-2957" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2957', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3012', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">        <tt id="link-3013" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3013', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2958', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2959" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2959', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
-<a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line"> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2960" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3014', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3015', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
+<a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
+<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line"> </tt>
+<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3016" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2960', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2961" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2961', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2962" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2962', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2890"></a><tt class="py-lineno">2890</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2963" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2963', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2964" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2964', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line"> </tt>
-<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2965" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3016', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3017', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3018" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3018', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3019" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3019', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3020', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line"> </tt>
+<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3021" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2965', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2966" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3021', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3022" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2966', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2967" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3022', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-3023" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2967', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line"> </tt>
-<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line"> </tt>
-<a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2902"></a><tt class="py-lineno">2902</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2905"></a><tt class="py-lineno">2905</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">        <tt id="link-2968" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3023', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line"> </tt>
+<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line"> </tt>
+<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2947"></a><tt class="py-lineno">2947</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">        <tt id="link-3024" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2968', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2969" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3024', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3025" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2969', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3025', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2970', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line">        <tt id="link-2971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2971', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2972" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3026', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line">        <tt id="link-3027" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3027', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3028" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2972', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2973" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2973', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line"> </tt>
-<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2974', 'sourceline', 'link-2974');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2975" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2975', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2976', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_large_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_large_sourceline_XML-def"><a name="L2918"></a><tt class="py-lineno">2918</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_large_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_large_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_large_sourceline_XML">test_large_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_large_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_large_sourceline_XML-expanded"><a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt id="link-2977" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3028', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3029" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3029', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
+<a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line"> </tt>
+<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3030" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3030', 'sourceline', 'link-3030');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3031" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3031', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3032', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_large_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_large_sourceline_XML-def"><a name="L2960"></a><tt class="py-lineno">2960</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_large_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_large_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_large_sourceline_XML">test_large_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_large_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_large_sourceline_XML-expanded"><a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt id="link-3033" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2977', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2978" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3033', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3034" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2978', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2979" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3034', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2979', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt id="link-2980" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2980', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2981" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3035', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt id="link-3036" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3036', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3037" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2981', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2982" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2982', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">            <tt class="py-string">'&lt;?xml version="1.0"?&gt;\n'</tt> </tt>
-<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">            <tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">*</tt> <tt class="py-number">65536</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">            <tt class="py-string">'&lt;p&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">*</tt> <tt class="py-number">65536</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;/p&gt;\n'</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line">            <tt class="py-string">'&lt;br/&gt;\n'</tt> </tt>
-<a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line"> </tt>
-<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3037', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3038" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3038', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">            <tt class="py-string">'&lt;?xml version="1.0"?&gt;\n'</tt> </tt>
+<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">            <tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">*</tt> <tt class="py-number">65536</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line">            <tt class="py-string">'&lt;p&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">*</tt> <tt class="py-number">65536</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;/p&gt;\n'</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">            <tt class="py-string">'&lt;br/&gt;\n'</tt> </tt>
+<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line"> </tt>
+<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2983', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2984" class="py-name"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-2984', 'LIBXML_VERSION', 'link-29');">LIBXML_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">9</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">131074</tt><tt class="py-op">,</tt> <tt class="py-number">131076</tt><tt class="py-op">]</tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">65535</tt><tt class="py-op">,</tt> <tt class="py-number">65535</tt><tt class="py-op">]</tt> </tt>
-<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line"> </tt>
-<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2985', 'sourceline', 'link-2974');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2986" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2986', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-2987" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-2987', 'iter', 'link-2987');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2934"></a><tt class="py-lineno">2934</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">        <tt id="link-2988" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3039', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3040" class="py-name"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-3040', 'LIBXML_VERSION', 'link-29');">LIBXML_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">9</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">131074</tt><tt class="py-op">,</tt> <tt class="py-number">131076</tt><tt class="py-op">]</tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">65535</tt><tt class="py-op">,</tt> <tt class="py-number">65535</tt><tt class="py-op">]</tt> </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line"> </tt>
+<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3041', 'sourceline', 'link-3030');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3042" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3042', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-3043', 'iter', 'link-3043');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2976"></a><tt class="py-lineno">2976</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line">        <tt id="link-3044" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2988', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3044', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2989', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2990" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3045', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3046" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2990', 'parse', 'link-809');">parse</a></tt> </tt>
-<a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2991" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3046', 'parse', 'link-809');">parse</a></tt> </tt>
+<a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3047" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2991', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2992" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2992', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line"> </tt>
-<a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2993" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2993', 'sourceline', 'link-2974');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2994" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2994', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2942"></a><tt class="py-lineno">2942</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt id="link-2995" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2995', 'iterparse', 'link-834');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2996" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3047', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3048" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3048', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line"> </tt>
+<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3049', 'sourceline', 'link-3030');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3050" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3050', 'getiterator', 'link-1251');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2984"></a><tt class="py-lineno">2984</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">        <tt id="link-3051" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3051', 'iterparse', 'link-834');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3052" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2996', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2997', 'iterparse', 'link-834');">iterparse</a></tt> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2998', 'sourceline', 'link-2974');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">                  <tt id="link-2999" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2999', 'iterparse', 'link-834');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3000" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3000', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line"> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2951"></a><tt class="py-lineno">2951</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line">        <tt id="link-3001" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3001', 'iterparse', 'link-834');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3052', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3053" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3053', 'iterparse', 'link-834');">iterparse</a></tt> </tt>
+<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3054" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3054', 'sourceline', 'link-3030');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line">                  <tt id="link-3055" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3055', 'iterparse', 'link-834');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3056" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3056', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line"> </tt>
+<a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2993"></a><tt class="py-lineno">2993</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt id="link-3057" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3057', 'iterparse', 'link-834');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3002', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3003" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3003', 'iterparse', 'link-834');">iterparse</a></tt> </tt>
-<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3004" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3004', 'sourceline', 'link-2974');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">                  <tt id="link-3005" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3005', 'iterparse', 'link-834');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3006" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3006', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line"> </tt>
-<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L2961"></a><tt class="py-lineno">2961</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt id="link-3007" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3058', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3059" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3059', 'iterparse', 'link-834');">iterparse</a></tt> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3060" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3060', 'sourceline', 'link-3030');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">                  <tt id="link-3061" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-3061', 'iterparse', 'link-834');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3062" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3062', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line"> </tt>
+<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L3003"></a><tt class="py-lineno">3003</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">        <tt id="link-3063" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3007', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3008" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3063', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3008', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3064', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3009', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">        <tt id="link-3010" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3010', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3011" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3065', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt id="link-3066" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3066', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3067" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3011', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3012', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3013" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3067', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3068', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3069" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3013', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3014', 'sourceline', 'link-2974');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line"> </tt>
-<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-3015" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3015', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3016" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3016', 'sourceline', 'link-2974');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-3017" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3017', 'sourceline', 'link-2974');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L2971"></a><tt class="py-lineno">2971</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">        <tt id="link-3018" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3069', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3070" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3070', 'sourceline', 'link-3030');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line"> </tt>
+<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-3071" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3071', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3072" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3072', 'sourceline', 'link-3030');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-3073" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3073', 'sourceline', 'link-3030');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L3013"></a><tt class="py-lineno">3013</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt id="link-3074" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3018', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3019" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3074', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3075" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3019', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">        <tt id="link-3020" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3020', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3021" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3075', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">        <tt id="link-3076" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3076', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3077" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3021', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3022" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3077', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3022', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3023" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3023', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3024" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3024', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt id="link-3025" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3025', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3026" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3026', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3027', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3028', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3029" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3029', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3030" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3030', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2977"></a><tt class="py-lineno">2977</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">        <tt id="link-3031" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3078', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3079" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3079', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3080" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3080', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt id="link-3081" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3081', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3082" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3082', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3083', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3084', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3085" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3085', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3086', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L3019"></a><tt class="py-lineno">3019</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt id="link-3087" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3031', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3087', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3088" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3032', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line">        <tt id="link-3033" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3033', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3034" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3088', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line">        <tt id="link-3089" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3089', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3090" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3034', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3090', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3091" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3035', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3036" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3036', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3037" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3037', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt id="link-3038" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3038', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3039" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3039', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3040" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3040', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3041', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3042" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3042', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3043', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">        <tt id="link-3044" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3044', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3045', 'URL', 'link-3030');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3046" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3046', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3047" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3047', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L2985"></a><tt class="py-lineno">2985</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">        <tt id="link-3048" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3091', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3092" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3092', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3093" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3093', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">        <tt id="link-3094" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3094', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3095" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3095', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3096', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3097" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3097', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3098" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3098', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3099', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">        <tt id="link-3100" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3100', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3101" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3101', 'URL', 'link-3086');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3102" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3102', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3103" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3103', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L3027"></a><tt class="py-lineno">3027</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt id="link-3104" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3048', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3104', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3049', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3050" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3105', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3106" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3050', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3051" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3106', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3107" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3051', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3052" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3052', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line">        <tt id="link-3053" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3053', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3054" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3054', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3055" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3055', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3056', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L2991"></a><tt class="py-lineno">2991</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line">        <tt id="link-3057" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3107', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3108" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3108', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt id="link-3109" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3109', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3110', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3111" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3111', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3112" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3112', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L3033"></a><tt class="py-lineno">3033</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt id="link-3113" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3057', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3113', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3058', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3059" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3114', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3115" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3059', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3060" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3115', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3060', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3061" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3061', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">                           <tt id="link-3062" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3062', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">        <tt id="link-3063" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3063', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3064', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3065" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3065', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3066" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3066', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L2998"></a><tt class="py-lineno">2998</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt id="link-3067" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3116', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3117" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3117', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">                           <tt id="link-3118" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3118', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt id="link-3119" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3119', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3120', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3121" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3121', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3122" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3122', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L3040"></a><tt class="py-lineno">3040</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">        <tt id="link-3123" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3067', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3123', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3068', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">        <tt id="link-3069" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3069', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3070" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3124', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt id="link-3125" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3125', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3126" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3070', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3126', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3071', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3072" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3072', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3073" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3073', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">        <tt id="link-3074" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3074', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3075" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3075', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3076" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3076', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3077', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3078" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3078', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3079" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3079', 'URL', 'link-3030');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L3004"></a><tt class="py-lineno">3004</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt id="link-3080" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3127', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3128" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3128', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3129" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3129', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt id="link-3130" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3130', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3131" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3131', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3132', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3133" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3133', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3134" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3134', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3135" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3135', 'URL', 'link-3086');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L3046"></a><tt class="py-lineno">3046</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt id="link-3136" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3080', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3136', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3081', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
-<a name="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line"> </tt>
-<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line">        <tt id="link-3082" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3082', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3083" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3083', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line"> </tt>
-<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3084" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3137', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
+<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line"> </tt>
+<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt id="link-3138" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3138', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3139" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3139', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line"> </tt>
+<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3140" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3084', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3085" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3140', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3141" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3085', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3086" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3086', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt id="link-3087" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3087', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3088" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3088', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3089" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3089', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3090" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3090', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3091" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3091', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3092', 'xml_version', 'link-3092');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3093" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3093', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3094', 'public_id', 'link-3094');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3095" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3095', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3096', 'system_url', 'link-3096');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3097" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3097', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3098" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3098', 'root_name', 'link-3098');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3099" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3099', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3100" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3100', 'doctype', 'link-3100');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L3022"></a><tt class="py-lineno">3022</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt id="link-3101" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3141', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3142" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3142', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt id="link-3143" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3143', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3144" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3144', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3145" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3145', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3146', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3147" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3147', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3148', 'xml_version', 'link-3148');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3149" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3149', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3150', 'public_id', 'link-3150');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3151" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3151', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3152', 'system_url', 'link-3152');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3153" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3153', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3154', 'root_name', 'link-3154');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3155" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3155', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3156" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3156', 'doctype', 'link-3156');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L3064"></a><tt class="py-lineno">3064</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">        <tt id="link-3157" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3101', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3157', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3102', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
-<a name="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
-<a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
-<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt id="link-3103" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3103', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3104" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3104', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line"> </tt>
-<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3105" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3158', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
+<a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
+<a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
+<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt id="link-3159" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3159', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3160" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3160', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line"> </tt>
+<a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3161" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3105', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3106" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3161', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3106', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3107" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3107', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt id="link-3108" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3108', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3109" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3109', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3110" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3110', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3111" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3111', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3112" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3112', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3113', 'xml_version', 'link-3092');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3114" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3114', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3115', 'public_id', 'link-3094');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3116" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3116', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3117', 'system_url', 'link-3096');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3118" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3118', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3119', 'root_name', 'link-3098');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3120" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3120', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3121" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3121', 'doctype', 'link-3100');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L3038"></a><tt class="py-lineno">3038</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt id="link-3122" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3162', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3163" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3163', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-3164" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3164', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3165', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3166" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3166', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3167" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3167', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3168" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3168', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3169" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3169', 'xml_version', 'link-3148');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3170" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3170', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3171', 'public_id', 'link-3150');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3172" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3172', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3173', 'system_url', 'link-3152');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3174" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3174', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3175" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3175', 'root_name', 'link-3154');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3176" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3176', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3177" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3177', 'doctype', 'link-3156');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L3080"></a><tt class="py-lineno">3080</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt id="link-3178" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3122', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3123" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3178', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3179" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3123', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">        <tt id="link-3124" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3124', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3125" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3125', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3126" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3179', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">        <tt id="link-3180" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3180', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3181" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3181', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3126', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3182', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3127', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3128" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3128', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt id="link-3129" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3129', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3130', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3131" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3131', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3132', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3133" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3133', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3134" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3134', 'xml_version', 'link-3092');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3135" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3135', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3136" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3136', 'public_id', 'link-3094');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3137" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3137', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3138" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3138', 'system_url', 'link-3096');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3139" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3139', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3140', 'root_name', 'link-3098');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3141" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3141', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3142" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3142', 'doctype', 'link-3100');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L3050"></a><tt class="py-lineno">3050</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt id="link-3143" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3183', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3184" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3184', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">        <tt id="link-3185" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3185', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3186" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3186', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3187" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3187', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3188" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3188', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3189" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3189', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3190" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3190', 'xml_version', 'link-3148');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3191" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3191', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3192', 'public_id', 'link-3150');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3193" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3193', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3194', 'system_url', 'link-3152');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3195" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3195', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3196" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3196', 'root_name', 'link-3154');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3197" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3197', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3198" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3198', 'doctype', 'link-3156');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L3092"></a><tt class="py-lineno">3092</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt id="link-3199" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3143', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3144" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3199', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3144', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt id="link-3145" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3145', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3146" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3146', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3147" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3200', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt id="link-3201" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3201', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3202" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3202', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3203" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3147', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3203', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3204" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3148', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3149" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3149', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">        <tt id="link-3150" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3150', 'docinfo', 'link-3025');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3151" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3151', 'docinfo', 'link-3025');">docinfo</a></tt> </tt>
-<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3152" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3152', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3153', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3154" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3154', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3155', 'xml_version', 'link-3092');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3156" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3156', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3157" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3157', 'public_id', 'link-3094');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3158" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3158', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3159', 'system_url', 'link-3096');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3160" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3160', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3161" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3161', 'root_name', 'link-3098');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3162" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3162', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3163', 'doctype', 'link-3100');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L3062"></a><tt class="py-lineno">3062</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">        <tt id="link-3164" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3204', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3205" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3205', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">        <tt id="link-3206" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3206', 'docinfo', 'link-3081');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3207" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3207', 'docinfo', 'link-3081');">docinfo</a></tt> </tt>
+<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3208" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3208', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3209', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3210" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3210', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3211', 'xml_version', 'link-3148');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3212" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3212', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3213" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3213', 'public_id', 'link-3150');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3214" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3214', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3215', 'system_url', 'link-3152');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3216" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3216', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3217" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3217', 'root_name', 'link-3154');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3218" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3218', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3219', 'doctype', 'link-3156');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L3104"></a><tt class="py-lineno">3104</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt id="link-3220" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3164', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3220', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3221" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3165', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">        <tt id="link-3166" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3166', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3167" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3167', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3168" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3221', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt id="link-3222" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3222', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3223" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3223', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3168', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3169" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3224', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3225" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3169', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3170" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3170', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3171" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3171', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-3172" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3225', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3226" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3226', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3227" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3227', 'xml', 'link-308');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3172', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3173', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L3068"></a><tt class="py-lineno">3068</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt id="link-3174" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3228', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3229" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3229', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L3110"></a><tt class="py-lineno">3110</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line">        <tt id="link-3230" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3174', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3175" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3230', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3231" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3175', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3176', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line"> </tt>
-<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt id="link-3177" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3177', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3178" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3178', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3179" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3231', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-3232" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3232', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line"> </tt>
+<a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line">        <tt id="link-3233" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3233', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3234" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3234', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3235" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3179', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3235', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3180', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3181" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3181', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3182" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3182', 'xml', 'link-308');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3183', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3184" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3184', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">                          <tt id="link-3185" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3236', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3237" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3237', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3238" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3238', 'xml', 'link-308');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3239', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3240" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3240', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">                          <tt id="link-3241" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3185', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3186" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3186', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3187" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3187', 'doctype', 'link-3100');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L3079"></a><tt class="py-lineno">3079</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line">        <tt id="link-3188" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3241', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3242', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3243" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3243', 'doctype', 'link-3156');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L3121"></a><tt class="py-lineno">3121</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt id="link-3244" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3188', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3189" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3244', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3245" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3189', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt id="link-3190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3190', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3191" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3245', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt id="link-3246" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3246', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3191', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3247', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3192', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3193" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3193', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3194" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3194', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3195', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3196" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3196', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">            <tt id="link-3197" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3197', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3198" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3248', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3249" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3249', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3250" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3250', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3251" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3251', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3252" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3252', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">            <tt id="link-3253" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3253', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3254" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3198', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line">        <tt id="link-3199" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3199', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3200', 'base', 'link-3196');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3201" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3201', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3202', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line">            <tt id="link-3203" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3203', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3204" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3254', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt id="link-3255" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3255', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3256" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3256', 'base', 'link-3252');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3257" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3257', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3258" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3258', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line">            <tt id="link-3259" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3259', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3260" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3204', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L3091"></a><tt class="py-lineno">3091</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">        <tt id="link-3205" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3260', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L3133"></a><tt class="py-lineno">3133</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt id="link-3261" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3261', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3262" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3206', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt id="link-3207" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3207', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3208" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3262', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line">        <tt id="link-3263" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3263', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3264" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3208', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3264', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3265" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3209', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3210" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3210', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3211" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3211', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3212', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3213" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3213', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">            <tt id="link-3214" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3214', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3265', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3266" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3266', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3267" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3267', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3268', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3269', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">            <tt id="link-3270" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3270', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3271" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3215', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">        <tt id="link-3216" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3216', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3217" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3217', 'set', 'link-236');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3218" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3218', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3219', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">            <tt id="link-3220" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3220', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3221" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3271', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3272" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3272', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3273" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3273', 'set', 'link-236');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3274" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3274', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3275" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3275', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">            <tt id="link-3276" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3276', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3221', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L3104"></a><tt class="py-lineno">3104</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt id="link-3222" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3277', 'get', 'link-238');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L3146"></a><tt class="py-lineno">3146</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt id="link-3278" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3222', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3223" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3278', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3279" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3223', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt id="link-3224" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3224', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3225" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3279', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt id="link-3280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3280', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3281" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3225', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3226" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3281', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3282" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3226', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3227" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3227', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line">                          <tt id="link-3228" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3228', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3229" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3229', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3230', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L3110"></a><tt class="py-lineno">3110</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line">        <tt id="link-3231" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3282', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3283" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3283', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">                          <tt id="link-3284" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3284', 'base_url', 'link-1357');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3285', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3286" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3286', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L3152"></a><tt class="py-lineno">3152</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt id="link-3287" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3231', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3232" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3287', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3232', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt id="link-3233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3233', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3234" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3288', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">        <tt id="link-3289" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3289', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3290" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3234', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3235" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3290', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3291" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3235', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3236" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3236', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3237" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3237', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3238" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3238', 'base', 'link-3196');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L3115"></a><tt class="py-lineno">3115</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
-<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3239" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-3239', 'LargeFileLikeUnicode', 'link-19');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3291', 'HTML', 'link-641');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3292" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3292', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3293', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3294', 'base', 'link-3252');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3295" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-3295', 'LargeFileLikeUnicode', 'link-19');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3240', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3241" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3296', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3297" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3241', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt id="link-3242" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3242', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3243', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3244', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3245" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3297', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">        <tt id="link-3298" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3298', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3299" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3299', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3300" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3300', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3301" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3245', 'tag', 'link-68');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L3122"></a><tt class="py-lineno">3122</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
-<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt id="link-3246" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3246', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3247', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
-<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
-<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3301', 'tag', 'link-68');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L3164"></a><tt class="py-lineno">3164</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt id="link-3302" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3302', 'xml', 'link-308');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3303" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3303', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
+<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
+<a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
+<a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
+<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3304" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3248', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3249" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3304', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3249', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3250" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3250', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3251" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3305', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3306" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3306', 'xml', 'link-308');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3307" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3251', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3252" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3252', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3253" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3253', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3254" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3254', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3255" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3255', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">                         <tt id="link-3256" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3256', 'xml', 'link-308');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3257" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3257', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3258" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3258', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3259" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3259', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L3136"></a><tt class="py-lineno">3136</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line">        <tt id="link-3260" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3307', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3308" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3308', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3309" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3309', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3310" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3310', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3311" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3311', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">                         <tt id="link-3312" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3312', 'xml', 'link-308');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3313" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3313', 'replace', 'link-591');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3314" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3314', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3315" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3315', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L3178"></a><tt class="py-lineno">3178</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt id="link-3316" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3260', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3316', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3261', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3262" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3317', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3318" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3262', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line"> </tt>
-<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3263" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3318', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line"> </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3319" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3263', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3264" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3264', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3265" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3265', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line"> </tt>
-<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3266" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3319', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3320" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3320', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3321" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3321', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line"> </tt>
+<a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3322" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3266', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L3145"></a><tt class="py-lineno">3145</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line">        <tt id="link-3267" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3322', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L3187"></a><tt class="py-lineno">3187</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt id="link-3323" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3267', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3268" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3323', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3324" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3268', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3324', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3269', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line"> </tt>
-<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3270" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3325', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line"> </tt>
+<a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3326" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3270', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3271" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3271', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">                          <tt id="link-3272" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3272', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3273" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3273', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">                          <tt id="link-3274" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3274', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line"> </tt>
-<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3275" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3326', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3327" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3327', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">                          <tt id="link-3328" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3328', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3329" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3329', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">                          <tt id="link-3330" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3330', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line"> </tt>
+<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3331" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3275', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">                          <tt id="link-3276" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3276', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt id="link-3277" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3331', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line">                          <tt id="link-3332" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3332', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L3199"></a><tt class="py-lineno">3199</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line">        <tt id="link-3333" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3277', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3278" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3333', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3278', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3279" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3334', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3335" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3279', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line"> </tt>
-<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3280" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3335', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line"> </tt>
+<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3336" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3280', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3281" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3281', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3282" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3282', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line"> </tt>
-<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3283" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3283', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3284" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3284', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line"> </tt>
-<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3285" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3336', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3337" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3337', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3338" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3338', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line"> </tt>
+<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3339" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3339', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3340" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3340', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line"> </tt>
+<a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3341" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3285', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3286" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3341', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3342" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3286', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L3170"></a><tt class="py-lineno">3170</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt id="link-3287" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3342', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L3212"></a><tt class="py-lineno">3212</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">        <tt id="link-3343" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3287', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3343', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3344" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3289" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3289', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line"> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3290" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3345', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line"> </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3346" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3290', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3291" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3291', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">                          <tt id="link-3292" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3292', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3293" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3293', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">                          <tt id="link-3294" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3294', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line"> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3295" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3295', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">                          <tt id="link-3296" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3296', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3297" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3297', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">                          <tt id="link-3298" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3298', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line"> </tt>
-<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3299" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3346', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3347" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3347', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">                          <tt id="link-3348" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3348', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3349" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3349', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">                          <tt id="link-3350" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3350', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line"> </tt>
+<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3351" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3351', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line">                          <tt id="link-3352" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3352', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3353" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3353', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">                          <tt id="link-3354" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3354', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line"> </tt>
+<a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3355" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3299', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line">                          <tt id="link-3300" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3300', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3301" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3355', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">                          <tt id="link-3356" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3356', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3357" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3301', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">                          <tt id="link-3302" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3302', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L3189"></a><tt class="py-lineno">3189</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line">        <tt id="link-3303" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3357', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">                          <tt id="link-3358" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3358', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L3231"></a><tt class="py-lineno">3231</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt id="link-3359" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3303', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3304" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3359', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3304', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3360', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3361" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3305', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line"> </tt>
-<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3306" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3361', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line"> </tt>
+<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3362" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3306', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3307" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3307', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">                          <tt id="link-3308" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3308', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3309" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3309', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">                          <tt id="link-3310" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3310', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line"> </tt>
-<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3311" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3311', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">                          <tt id="link-3312" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3312', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3313" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3313', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">                          <tt id="link-3314" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3314', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line"> </tt>
-<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3315" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3362', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3363" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3363', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-line">                          <tt id="link-3364" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3364', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3365" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3365', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">                          <tt id="link-3366" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3366', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line"> </tt>
+<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3367" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3367', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">                          <tt id="link-3368" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3368', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3369" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3369', 'setattr', 'link-76');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">                          <tt id="link-3370" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3370', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line"> </tt>
+<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3371" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3315', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line">                          <tt id="link-3316" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3316', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3317" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3371', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">                          <tt id="link-3372" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3372', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3373" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3317', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">                          <tt id="link-3318" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3318', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L3208"></a><tt class="py-lineno">3208</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
-<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt id="link-3319" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3319', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3373', 'Element', 'link-64');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">                          <tt id="link-3374" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3374', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L3250"></a><tt class="py-lineno">3250</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
+<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt id="link-3375" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3375', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3320', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3321" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3321', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt id="link-3322" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3376', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3377" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3377', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt id="link-3378" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3322', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3378', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3379" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3323', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3324" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3379', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3324', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt id="link-3325" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3325', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3380', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt id="link-3381" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3381', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3382" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3326', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3327" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3327', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">         </tt>
-<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3328" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3382', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3383', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">         </tt>
+<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3384" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3328', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3329" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3329', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3330', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line"> </tt>
-<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3331" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3331', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3332" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3332', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3333" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3333', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">                          <tt id="link-3334" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3334', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3222"></a><tt class="py-lineno">3222</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
-<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt id="link-3335" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3335', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3336" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3384', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3385" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3385', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3386', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line"> </tt>
+<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3387" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3387', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3388" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3388', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3389" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3389', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">                          <tt id="link-3390" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3390', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3264"></a><tt class="py-lineno">3264</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
+<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt id="link-3391" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3391', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3392" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3336', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3337', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3338" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3392', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3393" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3393', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3394" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3338', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3339" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3339', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3227"></a><tt class="py-lineno">3227</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt id="link-3340" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3340', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3341" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3395', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3269"></a><tt class="py-lineno">3269</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">        <tt id="link-3396" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3396', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3397" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3341', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3342', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">        <tt id="link-3343" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3397', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3398', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line">        <tt id="link-3399" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3343', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3344" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3399', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3400" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3400', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3345', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">        <tt id="link-3346" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3346', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3401', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">        <tt id="link-3402" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3402', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3403" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3347', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3348" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3348', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line"> </tt>
-<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3349" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3403', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3404" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3404', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line"> </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3405" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3349', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3350', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3351" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3351', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line"> </tt>
-<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3352" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3352', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3353" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3353', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line"> </tt>
-<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3354" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3354', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3355" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3355', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line"> </tt>
-<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3356" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3356', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3357" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3357', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3245"></a><tt class="py-lineno">3245</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt id="link-3358" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3358', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3359" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3405', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3406" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3406', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3407" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3407', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line"> </tt>
+<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3408" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3408', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3409" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3409', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line"> </tt>
+<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3410" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3410', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3411" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3411', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line"> </tt>
+<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3412" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3412', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3413" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3413', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3287"></a><tt class="py-lineno">3287</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">        <tt id="link-3414" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3414', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3359', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3360', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt id="link-3361" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3415', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3416" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3416', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt id="link-3417" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3361', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3417', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3418" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3418', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3363', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">        <tt id="link-3364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3364', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3365" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3419', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">        <tt id="link-3420" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3420', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3365', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3366', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line"> </tt>
-<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3367" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3421', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3422" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3422', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line"> </tt>
+<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3423" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3367', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3368', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
-<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3369" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3369', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3370', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
-<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3371" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3371', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line"> </tt>
-<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3372" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3372', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3373" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3373', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line"> </tt>
-<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3374" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3374', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3375" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3375', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line"> </tt>
-<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3376" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3376', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3377', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_html_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-def"><a name="L3265"></a><tt class="py-lineno">3265</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_html_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-expanded"><a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt id="link-3378" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3378', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3379" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3423', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3424', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
+<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3425', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3426', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
+<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3427" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3427', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line"> </tt>
+<a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3428" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3428', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3429" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3429', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line"> </tt>
+<a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3430" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3430', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3431" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3431', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line"> </tt>
+<a name="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3432" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3432', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3433" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3433', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_html_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-def"><a name="L3307"></a><tt class="py-lineno">3307</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_html_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_html_with_tail-expanded"><a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt id="link-3434" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3434', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3435" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3379', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3380', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">        <tt id="link-3381" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3435', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3436" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3436', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line">        <tt id="link-3437" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3381', 'html', 'link-3381');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3382" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3437', 'html', 'link-3437');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3438" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3382', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3383', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">            <tt class="py-string">'&lt;html&gt;&lt;body&gt;'</tt> </tt>
-<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">            <tt class="py-string">'&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n'</tt> </tt>
-<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line">            <tt id="link-3384" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3384', 'parser', 'link-800');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3385" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3439', 'fromstring', 'link-789');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">            <tt class="py-string">'&lt;html&gt;&lt;body&gt;'</tt> </tt>
+<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">            <tt class="py-string">'&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n'</tt> </tt>
+<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">            <tt id="link-3440" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3440', 'parser', 'link-800');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3385', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name" targets="Class lxml.etree.HTMLParser=lxml.etree.HTMLParser-class.html,Class lxml.html.HTMLParser=lxml.html.HTMLParser-class.html,Class lxml.html.html5parser.HTMLParser=lxml.html.html5parser.HTMLParser-class.html"><a title="lxml.etree.HTMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3441', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3442" class="py-name" targets="Class lxml.etree.HTMLParser=lxml.etree.HTMLParser-class.html,Class lxml.html.HTMLParser=lxml.html.HTMLParser-class.html,Class lxml.html.html5parser.HTMLParser=lxml.html.html5parser.HTMLParser-class.html"><a title="lxml.etree.HTMLParser
 lxml.html.HTMLParser
-lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-3386', 'HTMLParser', 'link-3386');">HTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3387" class="py-name"><a title="lxml.html
+lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-3442', 'HTMLParser', 'link-3442');">HTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3443" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3387', 'html', 'link-3381');">html</a></tt><tt class="py-op">.</tt><tt id="link-3388" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3443', 'html', 'link-3437');">html</a></tt><tt class="py-op">.</tt><tt id="link-3444" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3388', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt class="py-name">div</tt> <tt class="py-op">=</tt> <tt id="link-3389" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3444', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line">        <tt class="py-name">div</tt> <tt class="py-op">=</tt> <tt id="link-3445" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3389', 'html', 'link-3381');">html</a></tt><tt class="py-op">.</tt><tt id="link-3390" class="py-name"><a title="lxml.etree._Element.find
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-3445', 'html', 'link-3437');">html</a></tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-3390', 'find', 'link-2605');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//div'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3391', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3392" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3392', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3393" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3393', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">            <tt id="link-3394" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3394', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3395" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3395', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3396" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3396', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">            <tt id="link-3397" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3397', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3398" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3398', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3399" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3399', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line">            <tt id="link-3400" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3400', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3288"></a><tt class="py-lineno">3288</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt id="link-3401" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3401', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3402" class="py-name"><a title="lxml.etree
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-3446', 'find', 'link-2661');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//div'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">.</tt><tt id="link-3447" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3447', 'tail', 'link-918');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3448" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3448', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3449" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3449', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">            <tt id="link-3450" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3450', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3451" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3451', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3452" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3452', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">            <tt id="link-3453" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3453', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3454" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3454', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-3455" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3455', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line">            <tt id="link-3456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3456', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;div&gt;&lt;p&gt;Some text&lt;i&gt;\r\n&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3330"></a><tt class="py-lineno">3330</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt id="link-3457" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3457', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3458" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3402', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3403" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3403', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">        <tt id="link-3404" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3458', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3459', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line">        <tt id="link-3460" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3404', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3460', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3461" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3405', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3406" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3461', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3462" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3406', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt id="link-3407" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3462', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L3333"></a><tt class="py-lineno">3333</tt>  <tt class="py-line">        <tt id="link-3463" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3407', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3408" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3463', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3464" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3408', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3464', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3409', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt id="link-3410" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3465', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt id="link-3466" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3410', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3411" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3466', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3467" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3411', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3467', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3468" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3412', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line"> </tt>
-<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3413" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3468', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line"> </tt>
+<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3469" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3413', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3414" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3414', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3415', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3416" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3416', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line"> </tt>
-<a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3417" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3469', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3470', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3471', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3472" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3472', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line"> </tt>
+<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3473" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3417', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3418" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3418', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3419', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3420" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3420', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3421', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line"> </tt>
-<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3422" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3473', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3474" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3474', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3475', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3476" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3476', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3477', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line"> </tt>
+<a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3478" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3422', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3423" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3423', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3424', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3425" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3425', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3426', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-line"> </tt>
-<a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3427" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3478', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3479" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3479', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3480', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3481" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3481', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3482" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3482', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line"> </tt>
+<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3483" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3427', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3428" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3428', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3429" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3429', 'getroottree', 'link-2269');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3430" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3430', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3431" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3431', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3310"></a><tt class="py-lineno">3310</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt id="link-3432" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3432', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3433" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3483', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3484" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3484', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3485', 'getroottree', 'link-2325');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3486" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3486', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3487', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3352"></a><tt class="py-lineno">3352</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">        <tt id="link-3488" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3488', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3489" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3433', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3434" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3434', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">        <tt id="link-3435" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3489', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3490" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3490', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">        <tt id="link-3491" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3435', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3436" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3491', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3492" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3436', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3437" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3492', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3493" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3437', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt id="link-3438" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3493', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">        <tt id="link-3494" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3438', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3494', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3439', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3440" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3495', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3440', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line"> </tt>
-<a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line">        <tt id="link-3441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3441', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3442" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3496', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line"> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">        <tt id="link-3497" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3497', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3442', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3443" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3443', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line"> </tt>
-<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3444" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3498', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3499" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3499', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line"> </tt>
+<a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3500" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3444', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3445', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3446', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3447" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3447', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line"> </tt>
-<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3448" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3448', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3449', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3450" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3450', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3451" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3451', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line"> </tt>
-<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3452" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3452', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3453" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3453', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3454" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3454', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">                          <tt id="link-3455" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3455', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3456', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line"> </tt>
-<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3457" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3500', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3501" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3501', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3502" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3502', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3503', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line"> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3504" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3504', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3505', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3506" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3506', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3507" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3507', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line"> </tt>
+<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3508" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3508', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3509" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3509', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3510" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3510', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">                          <tt id="link-3511" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3511', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3512', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line"> </tt>
+<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3513" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3457', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3458" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3458', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3459', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3460', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line"> </tt>
-<a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3461" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3461', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3462', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3463" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3463', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3333"></a><tt class="py-lineno">3333</tt>  <tt class="py-line">                          <tt id="link-3464" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3464', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3465" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3465', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line"> </tt>
-<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3466" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3513', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3514" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3514', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3515', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3516" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3516', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line"> </tt>
+<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3517" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3517', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3518" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3518', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3519" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3519', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line">                          <tt id="link-3520" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3520', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3521" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3521', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line"> </tt>
+<a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3522" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3466', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3467" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3522', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3523" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3467', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3468" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3468', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3469" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3469', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3340"></a><tt class="py-lineno">3340</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line">        <tt id="link-3470" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3470', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3471" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3523', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3524', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3525" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3525', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3382"></a><tt class="py-lineno">3382</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">        <tt id="link-3526" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3526', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3471', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3472" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3472', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">        <tt id="link-3473" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3527', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3528" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3528', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt id="link-3529" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3473', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3474" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3529', 'XML', 'link-212');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3474', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3530', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3531" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3475', 'XML', 'link-212');">XML</a></tt> </tt>
-<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">        <tt id="link-3476" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3531', 'XML', 'link-212');">XML</a></tt> </tt>
+<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt id="link-3532" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3476', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3532', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3533" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3477', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3478" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3533', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3534" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3478', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line"> </tt>
-<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line">        <tt id="link-3479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3479', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3480" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3534', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line"> </tt>
+<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">        <tt id="link-3535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3535', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3536" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3480', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3481" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3481', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line"> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3482" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3536', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3537', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3388"></a><tt class="py-lineno">3388</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line"> </tt>
+<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3538" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3482', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3483', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3484" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3484', 'docinfo', 'link-3025');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3485', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line"> </tt>
-<a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3486" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3486', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3487" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3487', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3488" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3488', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3352"></a><tt class="py-lineno">3352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3489" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3489', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line"> </tt>
-<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3490" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3490', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3491', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3492" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3492', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">                          <tt id="link-3493" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3493', 'standalone', 'link-3416');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3494" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3494', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3360"></a><tt class="py-lineno">3360</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">        <tt id="link-3495" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3495', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3538', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3539" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3539', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3540', 'docinfo', 'link-3081');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3541" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3541', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line"> </tt>
+<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3542" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3542', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3543', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3544" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3544', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3545', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line"> </tt>
+<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3546" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3546', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3547" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3547', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3548" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3548', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">                          <tt id="link-3549" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3549', 'standalone', 'link-3472');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3550', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3402"></a><tt class="py-lineno">3402</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt id="link-3551" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3551', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3552" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3496', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3497" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3497', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt id="link-3498" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3552', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3553" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3553', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">        <tt id="link-3554" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3498', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3554', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3555" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3499', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3500" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3555', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3556" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3500', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt id="link-3501" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3501', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3502" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3556', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt id="link-3557" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3557', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3502', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3503', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">         </tt>
-<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3504" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3558', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3559" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3559', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">         </tt>
+<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3560" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3504', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3560', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3505', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3506" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3506', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3507" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3507', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3561', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3562" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3562', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3563" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3563', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3564" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3508', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3509', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3510" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3510', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3511" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3511', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3512" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3564', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3565" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3565', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3566" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3566', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3567" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3567', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3568" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3512', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line"> </tt>
-<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3513" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3513', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3514" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3514', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3515" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3515', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line"> </tt>
-<a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3516" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3516', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3379"></a><tt class="py-lineno">3379</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">        <tt id="link-3517" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3517', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3568', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line"> </tt>
+<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3569" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3569', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3570" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3570', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3571" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3571', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line"> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3572" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3572', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3421"></a><tt class="py-lineno">3421</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt id="link-3573" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3573', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3574" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3518', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3519', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line">        <tt id="link-3520" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3574', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3575" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3575', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt id="link-3576" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3520', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3576', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3577" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3521', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3522" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3577', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3578" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3522', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">        <tt id="link-3523" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3523', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3578', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">        <tt id="link-3579" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3579', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3580" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3524', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3525" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3525', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">         </tt>
-<a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3526" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3580', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3581', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">         </tt>
+<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3582" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3526', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3582', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3527', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3528" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3528', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3529', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3530" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3530', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3388"></a><tt class="py-lineno">3388</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3531" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3583', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3584" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3584', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3585', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3586" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3586', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3531', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3532', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3533" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3533', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3534" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3534', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3535" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3587', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3588', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3589" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3589', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3590" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3590', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3535', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">         </tt>
-<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">                          <tt id="link-3536" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3536', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3537" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3537', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line">         </tt>
-<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">            <tt id="link-3538" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3538', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">            <tt id="link-3539" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3539', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3540" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3540', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3541" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3541', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3400"></a><tt class="py-lineno">3400</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">        <tt id="link-3542" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3542', 'tounicode', 'link-3542');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3543" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3591', 'text', 'link-189');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">         </tt>
+<a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L3436"></a><tt class="py-lineno">3436</tt>  <tt class="py-line">                          <tt id="link-3592" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3592', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3593" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3593', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">         </tt>
+<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">            <tt id="link-3594" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3594', '_str', 'link-23');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">            <tt id="link-3595" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3595', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3596" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3596', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3597" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3597', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3442"></a><tt class="py-lineno">3442</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line">        <tt id="link-3598" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3598', 'tounicode', 'link-3598');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3543', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3544', 'tounicode', 'link-3542');">tounicode</a></tt> </tt>
-<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">        <tt id="link-3545" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3599', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3600" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3600', 'tounicode', 'link-3598');">tounicode</a></tt> </tt>
+<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt id="link-3601" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3545', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3601', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3602" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3546', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3547" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3602', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3603" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3547', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt id="link-3548" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3548', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3549" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3603', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt id="link-3604" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3604', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3605" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3549', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3550" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3550', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">         </tt>
-<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3551" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3605', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3606" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3606', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">         </tt>
+<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3607" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3551', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3552" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3552', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3553" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3553', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">         </tt>
-<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3554" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3554', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3555" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3555', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">                          <tt id="link-3556" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3556', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3557" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3557', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3413"></a><tt class="py-lineno">3413</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt id="link-3558" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3558', 'tounicode', 'link-3542');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3559" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3607', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3608', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3609" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3609', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">         </tt>
+<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3610" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3610', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3611" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3611', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line">                          <tt id="link-3612" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3612', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3613" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3613', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3455"></a><tt class="py-lineno">3455</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">        <tt id="link-3614" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3614', 'tounicode', 'link-3598');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3615" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3559', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3560" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3560', 'tounicode', 'link-3542');">tounicode</a></tt> </tt>
-<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">        <tt id="link-3561" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3615', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3616" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3616', 'tounicode', 'link-3598');">tounicode</a></tt> </tt>
+<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt id="link-3617" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3561', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3562" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3617', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3618" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3562', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3618', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3563', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt id="link-3564" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3564', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3565" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3619', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">        <tt id="link-3620" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3620', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3621" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3565', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3566" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3566', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">         </tt>
-<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3567" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3621', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3622', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">         </tt>
+<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3623" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3567', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3568" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3568', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3569" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3569', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3570" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3570', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3571" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3571', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3572" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3572', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3573" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3573', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">                          <tt id="link-3574" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3574', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3575" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3575', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3576" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3576', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">                          <tt id="link-3577" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3577', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3578" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3578', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3429"></a><tt class="py-lineno">3429</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt id="link-3579" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3579', 'tounicode', 'link-3542');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3580" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3623', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3624" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3624', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3625" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3625', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3626', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3627" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3627', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3628" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3628', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3629" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3629', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">                          <tt id="link-3630" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3630', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3631" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3631', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3632" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3632', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">                          <tt id="link-3633" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3633', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3634" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3634', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3471"></a><tt class="py-lineno">3471</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt id="link-3635" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3635', 'tounicode', 'link-3598');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3636" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3580', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3581', 'tounicode', 'link-3542');">tounicode</a></tt> </tt>
-<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3636', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3637', 'tounicode', 'link-3598');">tounicode</a></tt> </tt>
+<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3582', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3583', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3433"></a><tt class="py-lineno">3433</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">        <tt id="link-3584" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3584', 'tounicode', 'link-3542');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3638', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3639" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3639', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3475"></a><tt class="py-lineno">3475</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">        <tt id="link-3640" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3640', 'tounicode', 'link-3598');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3641" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3585', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3586', 'tounicode', 'link-3542');">tounicode</a></tt> </tt>
-<a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line">        <tt id="link-3587" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3642', 'tounicode', 'link-3598');">tounicode</a></tt> </tt>
+<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">        <tt id="link-3643" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3587', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3643', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3644" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3588', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3589" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3644', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3645" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3589', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3436"></a><tt class="py-lineno">3436</tt>  <tt class="py-line">        <tt id="link-3590" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3590', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3645', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line">        <tt id="link-3646" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3646', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3647" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3591', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3592', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">         </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3593" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3647', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3648', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">         </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3649" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3593', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3594" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3594', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3595" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3595', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3596" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3596', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3597', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line"> </tt>
-<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3598" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3598', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3599" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3599', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">                     <tt id="link-3600" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3600', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3448"></a><tt class="py-lineno">3448</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt id="link-3601" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3601', 'tounicode', 'link-3542');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3602" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3649', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3650', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3651', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3652" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3652', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3653" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3653', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line"> </tt>
+<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3654" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3654', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3655" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3655', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">                     <tt id="link-3656" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3656', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3490"></a><tt class="py-lineno">3490</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">        <tt id="link-3657" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3657', 'tounicode', 'link-3598');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3658" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3602', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3603" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3603', 'tounicode', 'link-3542');">tounicode</a></tt> </tt>
-<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt id="link-3604" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3658', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3659', 'tounicode', 'link-3598');">tounicode</a></tt> </tt>
+<a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt id="link-3660" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3604', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3605" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3660', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3661" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3605', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3606" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3661', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3662" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3606', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt id="link-3607" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3607', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3662', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt id="link-3663" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3663', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3608', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3609" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3609', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line"> </tt>
-<a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3610" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3664', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3665" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3665', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line"> </tt>
+<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3666" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3610', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3611" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3611', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3612" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3612', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line"> </tt>
-<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3613" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3613', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line"> </tt>
-<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3614" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3614', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line"> </tt>
-<a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3615" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3615', 'tounicode', 'link-3542');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3466"></a><tt class="py-lineno">3466</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">        <tt id="link-3616" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3616', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3617" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3666', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3667" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3667', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3668" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3668', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line"> </tt>
+<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3669" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3669', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line"> </tt>
+<a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3670" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3670', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line"> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3671" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3671', 'tounicode', 'link-3598');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3508"></a><tt class="py-lineno">3508</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt id="link-3672" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3672', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3617', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3618" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3618', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt id="link-3619" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3673', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3674', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt id="link-3675" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3619', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3620" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3675', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3676" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3620', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3621" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3676', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3677" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3621', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">        <tt id="link-3622" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3622', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3677', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">        <tt id="link-3678" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3678', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3679" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3623', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3624" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3624', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">         </tt>
-<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3625" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3679', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3680" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3680', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">         </tt>
+<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3681" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3625', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3626', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3627" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3627', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">         </tt>
-<a name="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3628" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3628', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3629" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3629', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3630', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">                          <tt id="link-3631" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3631', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3632" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3632', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3633" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3633', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3479"></a><tt class="py-lineno">3479</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">        <tt id="link-3634" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3634', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3635" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3681', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3682" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3682', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3683" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3683', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">         </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3684" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3684', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3685" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3685', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3686" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3686', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line">                          <tt id="link-3687" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3687', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3688" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3688', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3689" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3689', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3521"></a><tt class="py-lineno">3521</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">        <tt id="link-3690" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3690', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3691" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3635', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3636" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3636', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">        <tt id="link-3637" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3691', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3692" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3692', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">        <tt id="link-3693" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3637', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3693', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3694" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3638', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3639" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3694', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3695" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3639', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">        <tt id="link-3640" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3640', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3641" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3695', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt id="link-3696" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3696', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3697" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3642', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">         </tt>
-<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3643" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3697', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3698" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3698', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">         </tt>
+<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3699" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3643', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3644" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3644', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3645" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3645', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3646" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3646', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3647" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3647', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3648" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3648', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3649" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3649', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3650" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3650', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3651" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3651', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">                          <tt id="link-3652" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3652', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3653" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3653', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3654" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3654', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3655" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3655', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">                          <tt id="link-3656" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3656', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3657" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3657', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3658" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3658', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3495"></a><tt class="py-lineno">3495</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line">        <tt id="link-3659" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3659', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3660" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3699', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3700" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3700', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3701" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3701', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3702" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3702', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3703" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3703', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3704" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3704', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3705" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3705', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3706" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3706', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3707" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3707', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">                          <tt id="link-3708" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3708', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3709" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3709', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3710" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3710', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3711" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3711', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">                          <tt id="link-3712" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3712', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3713" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3713', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3714" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3714', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3537"></a><tt class="py-lineno">3537</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">        <tt id="link-3715" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3715', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3716" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3660', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3661" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3661', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3662" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3716', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3717" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3717', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3718" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3662', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3663" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3663', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3664" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3664', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3500"></a><tt class="py-lineno">3500</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">        <tt id="link-3665" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3665', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3666" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3718', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3719', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3720" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3720', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3542"></a><tt class="py-lineno">3542</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">        <tt id="link-3721" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3721', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3722" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3666', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3667" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3667', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line">        <tt id="link-3668" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3722', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3723" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3723', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line">        <tt id="link-3724" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3668', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3724', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3725" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3669', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3725', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3726" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3670', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt id="link-3671" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3671', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3726', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">        <tt id="link-3727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3727', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3728" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3672', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3673', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">         </tt>
-<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3674" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3728', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3729', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">         </tt>
+<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3730" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3674', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3675" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3675', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3676', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3677" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3677', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3678" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3678', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line"> </tt>
-<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3679" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3679', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3680" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3680', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3681" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3681', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3682" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3682', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">                     <tt id="link-3683" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3683', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3684" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3684', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3515"></a><tt class="py-lineno">3515</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt id="link-3685" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3685', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3686" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3730', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3731', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3732" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3732', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3733" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3733', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3734" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3734', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line"> </tt>
+<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3735" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3735', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3736" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3736', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3554"></a><tt class="py-lineno">3554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3737" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3737', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3738" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3738', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3555"></a><tt class="py-lineno">3555</tt>  <tt class="py-line">                     <tt id="link-3739" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3739', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3740" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3740', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3557"></a><tt class="py-lineno">3557</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">        <tt id="link-3741" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3741', 'tostring', 'link-649');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3686', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3687" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3687', 'tostring', 'link-649');">tostring</a></tt> </tt>
-<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt id="link-3688" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3742', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3743" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3743', 'tostring', 'link-649');">tostring</a></tt> </tt>
+<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt id="link-3744" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3688', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3744', 'Element', 'link-64');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3745" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3689', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3690" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3745', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3746" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3690', 'Element', 'link-64');">Element</a></tt> </tt>
-<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">        <tt id="link-3691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3691', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3692" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3746', 'Element', 'link-64');">Element</a></tt> </tt>
+<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">        <tt id="link-3747" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3747', 'SubElement', 'link-107');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3748" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3692', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3693', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
-<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line"> </tt>
-<a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3694" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3748', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3749" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3749', 'SubElement', 'link-107');">SubElement</a></tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line"> </tt>
+<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3750" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3694', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3695" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3695', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3696" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3696', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line"> </tt>
-<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3697" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3697', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3698" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3698', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line"> </tt>
-<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3699" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3699', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3700" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3700', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line"> </tt>
-<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3701" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3701', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3702" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3702', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3533"></a><tt class="py-lineno">3533</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt id="link-3703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3703', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3704" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3750', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3751" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3751', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3752" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3752', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line"> </tt>
+<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3753" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3753', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3754" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3754', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line"> </tt>
+<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3755" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3755', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3756" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3756', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line"> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3757" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3757', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3758" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3758', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3575"></a><tt class="py-lineno">3575</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt id="link-3759" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3759', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3760" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3704', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3760', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3761" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3705', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">        <tt id="link-3706" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3761', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">        <tt id="link-3762" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3706', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3707" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3707', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3708" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3708', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line"> </tt>
-<a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3709" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3709', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3710', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3711" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3762', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3763" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3763', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3764', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line"> </tt>
+<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3765', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3766" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3766', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3767" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3711', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line"> </tt>
-<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3712" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3712', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3713', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3714" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3767', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line"> </tt>
+<a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
+<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3768" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3768', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3769', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3770" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3714', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_refcycle"></a><div id="ETreeOnlyTestCase.test_element_refcycle-def"><a name="L3545"></a><tt class="py-lineno">3545</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_refcycle-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_refcycle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_refcycle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_refcycle-expanded"><a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line"> </tt>
-<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt class="py-name">el1</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-3715" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3770', 'tag', 'link-68');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_refcycle"></a><div id="ETreeOnlyTestCase.test_element_refcycle-def"><a name="L3587"></a><tt class="py-lineno">3587</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_refcycle-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_refcycle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_refcycle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_refcycle-expanded"><a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line"> </tt>
+<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">        <tt class="py-name">el1</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-3771" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3715', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt id="link-3716" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3771', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt id="link-3772" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3716', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line">        <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el2</tt> </tt>
-<a name="L3554"></a><tt class="py-lineno">3554</tt>  <tt class="py-line">        <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el1</tt> </tt>
-<a name="L3555"></a><tt class="py-lineno">3555</tt>  <tt class="py-line"> </tt>
-<a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">el1</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">        <tt class="py-comment"># not really testing anything here, but it shouldn't crash</tt> </tt>
-<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line"> </tt>
-<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3562"></a><tt class="py-lineno">3562</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">        <tt id="link-3717" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3772', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">        <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el2</tt> </tt>
+<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el1</tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line"> </tt>
+<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">el1</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt> </tt>
+<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">        <tt class="py-comment"># not really testing anything here, but it shouldn't crash</tt> </tt>
+<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_proxy_collect_siblings"></a><div id="ETreeOnlyTestCase.test_proxy_collect_siblings-def"><a name="L3602"></a><tt class="py-lineno">3602</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_proxy_collect_siblings-toggle" onclick="return toggle('ETreeOnlyTestCase.test_proxy_collect_siblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings">test_proxy_collect_siblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_proxy_collect_siblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_proxy_collect_siblings-expanded"><a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line">        <tt id="link-3773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3773', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3774" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3774', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3775" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3775', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line">        <tt class="py-name">c1</tt> <tt class="py-op">=</tt> <tt id="link-3776" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3776', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3777" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3777', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3778', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-name">c2</tt> <tt class="py-op">=</tt> <tt id="link-3779" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3779', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3780" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3780', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3781', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line"> </tt>
+<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">        <tt id="link-3782" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3782', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.CheckboxValues.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3783', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">        <tt id="link-3784" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3784', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3785" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.CheckboxValues.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3785', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-3786" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-3786', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
+<a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
+<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3787" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-3787', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">        <tt class="py-comment"># make sure it wasn't deallocated</tt> </tt>
+<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3788" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-3788', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3789" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3789', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_proxy_collect_siblings_text"></a><div id="ETreeOnlyTestCase.test_proxy_collect_siblings_text-def"><a name="L3616"></a><tt class="py-lineno">3616</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_proxy_collect_siblings_text-toggle" onclick="return toggle('ETreeOnlyTestCase.test_proxy_collect_siblings_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text">test_proxy_collect_siblings_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_proxy_collect_siblings_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_proxy_collect_siblings_text-expanded"><a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">        <tt id="link-3790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3790', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3791" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3791', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3792" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3792', 'Element', 'link-64');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line">        <tt class="py-name">c1</tt> <tt class="py-op">=</tt> <tt id="link-3793" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3793', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3794" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3794', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3795', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-name">c2</tt> <tt class="py-op">=</tt> <tt id="link-3796" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3796', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3797" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3797', 'SubElement', 'link-107');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3798" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3798', 'root', 'link-215');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line"> </tt>
+<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt id="link-3799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3799', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3800" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.CheckboxValues.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3800', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">        <tt id="link-3801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3801', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3802" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.CheckboxValues.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3802', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-3803" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-3803', 'addnext', 'link-1662');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-3804" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3804', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'abc'</tt> </tt>
+<a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3805" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3805', 'tail', 'link-918');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'xyz'</tt> </tt>
+<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
+<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3806" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-3806', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">        <tt class="py-comment"># make sure it wasn't deallocated</tt> </tt>
+<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3807" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-3807', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3808" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3808', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'abc'</tt><tt class="py-op">,</tt> <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-3809" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-3809', 'getprevious', 'link-2353');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3810" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3810', 'tail', 'link-918');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line"> </tt>
+<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3635"></a><tt class="py-lineno">3635</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">        <tt id="link-3811" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3717', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3718" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3811', 'ElementTree', 'link-520');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3812" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3718', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3812', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3813" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3719', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
-<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3720" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3813', 'ElementTree', 'link-520');">ElementTree</a></tt> </tt>
+<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3640"></a><tt class="py-lineno">3640</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3814" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3720', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3721" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3721', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3722" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3722', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3723" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3723', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
-<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">        <tt id="link-3724" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3724', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">            <tt id="link-3725" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3725', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3726" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3726', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3727" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3727', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3728" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3728', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line"> </tt>
-<a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3575"></a><tt class="py-lineno">3575</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3576"></a><tt class="py-lineno">3576</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">        <tt id="link-3729" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3729', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3730" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3730', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">        <tt id="link-3731" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3731', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3732" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3814', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3815" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3815', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3816" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3816', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3817" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3817', 'encoding', 'link-978');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">        <tt id="link-3818" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3818', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
+<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line">            <tt id="link-3819" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3819', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3820" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3820', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3821" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3821', 'canonicalize', 'link-22');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3822" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3822', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line"> </tt>
+<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3648"></a><tt class="py-lineno">3648</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3649"></a><tt class="py-lineno">3649</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">        <tt id="link-3823" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3823', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3824" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3824', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt id="link-3825" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3825', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3826" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3732', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3733" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3826', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3827" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3733', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3734" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3734', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
-<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
-<a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3735" class="py-name"><a title="lxml.tests.common_imports.path2url" class="py-name" href="#" onclick="return doclink('link-3735', 'path2url', 'link-16');">path2url</a></tt><tt class="py-op">(</tt><tt id="link-3736" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3736', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3737', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3738" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3827', 'XML', 'link-212');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3828" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3828', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
+<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3829" class="py-name"><a title="lxml.tests.common_imports.path2url" class="py-name" href="#" onclick="return doclink('link-3829', 'path2url', 'link-16');">path2url</a></tt><tt class="py-op">(</tt><tt id="link-3830" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3830', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3831" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3831', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3832" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3738', 'text', 'link-189');">text</a></tt> </tt>
-<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3739" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3739', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3740" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3740', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3741" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3741', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3742', 'tail', 'link-918');">tail</a></tt> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line"> </tt>
-<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3743" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3832', 'text', 'link-189');">text</a></tt> </tt>
+<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3833" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3833', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3834" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3834', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3835" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3835', 'root', 'link-215');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3836" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3836', 'tail', 'link-918');">tail</a></tt> </tt>
+<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line"> </tt>
+<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3837" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3743', 'include', 'link-3743');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3744" class="py-name"><a title="lxml.etree
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3837', 'include', 'link-3837');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3838" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3744', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3745" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3838', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3839" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3745', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3746" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3746', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
-<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">                          <tt id="link-3747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3747', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3748" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3839', 'ElementTree', 'link-520');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3840" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3840', 'root', 'link-215');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
+<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">                          <tt id="link-3841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3841', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-3842" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3748', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3591"></a><tt class="py-lineno">3591</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3749" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3842', 'text', 'link-189');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3664"></a><tt class="py-lineno">3664</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3843" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3749', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3750" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3843', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3844" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3750', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3751" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3751', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3752" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3752', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3753" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3844', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3845" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3845', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3846" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3846', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3847" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3753', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
-<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3754" class="py-name"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3847', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
+<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3848" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3754', 'include', 'link-3743');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
-<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3755" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3755', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3848', 'include', 'link-3837');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
+<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3849" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3849', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3850" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3756', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3603"></a><tt class="py-lineno">3603</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3757" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3757', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3758" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3758', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3759" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3759', 'resolve_filename', 'link-1323');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">                        <tt id="link-3760" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3760', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3761" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3761', 'resolve_string', 'link-1259');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line"> </tt>
-<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">        <tt id="link-3762" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3762', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3763" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3763', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3764" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3850', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3676"></a><tt class="py-lineno">3676</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3851" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3851', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3852" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3852', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3679"></a><tt class="py-lineno">3679</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3853" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3853', 'resolve_filename', 'link-1323');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">                        <tt id="link-3854" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3854', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
+<a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3855" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3855', 'resolve_string', 'link-1259');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line"> </tt>
+<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">        <tt id="link-3856" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3856', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3857" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3857', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3858" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3764', 'XMLParser', 'link-795');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt id="link-3765" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3765', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3766" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-3766', 'resolvers', 'link-1262');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-3767" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3767', 'add', 'link-1263');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
-<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line"> </tt>
-<a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3768" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3858', 'XMLParser', 'link-795');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">        <tt id="link-3859" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3859', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3860" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-3860', 'resolvers', 'link-1262');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-3861" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3861', 'add', 'link-1263');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
+<a name="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line"> </tt>
+<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3862" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3768', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3769" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3862', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3863" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3769', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3770" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3770', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">                           <tt id="link-3771" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3771', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3772" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3772', 'parser', 'link-800');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line"> </tt>
-<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3773" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3863', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3864" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3864', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">                           <tt id="link-3865" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3865', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3866" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3866', 'parser', 'link-800');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line"> </tt>
+<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3867" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3773', 'include', 'link-3743');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line"> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3774" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3867', 'include', 'link-3837');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
+<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3868" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3774', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line"> </tt>
-<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3635"></a><tt class="py-lineno">3635</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3636"></a><tt class="py-lineno">3636</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3775" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3775', 'xinclude', 'link-3775');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line"> </tt>
-<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3640"></a><tt class="py-lineno">3640</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3776" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3776', 'lxml', 'link-3776');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3777" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3777', 'ElementInclude', 'link-3777');">ElementInclude</a></tt> </tt>
-<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3642"></a><tt class="py-lineno">3642</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3778" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3778', 'ElementInclude', 'link-3777');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3779" class="py-name"><a title="lxml.ElementInclude.include
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3868', 'items', 'link-261');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line"> </tt>
+<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3708"></a><tt class="py-lineno">3708</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3709"></a><tt class="py-lineno">3709</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3869" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3869', 'xinclude', 'link-3869');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line"> </tt>
+<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3713"></a><tt class="py-lineno">3713</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3870" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3870', 'lxml', 'link-3870');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3871" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3871', 'ElementInclude', 'link-3871');">ElementInclude</a></tt> </tt>
+<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3715"></a><tt class="py-lineno">3715</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3872" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3872', 'ElementInclude', 'link-3871');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3873" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3779', 'include', 'link-3743');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3780" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3780', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line"> </tt>
-<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3646"></a><tt class="py-lineno">3646</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3647"></a><tt class="py-lineno">3647</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3781" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3873', 'include', 'link-3837');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3874" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3874', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line"> </tt>
+<a name="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3719"></a><tt class="py-lineno">3719</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3720"></a><tt class="py-lineno">3720</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3875" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3781', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3782" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3782', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3783', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3784" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3784', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3655"></a><tt class="py-lineno">3655</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3785" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3875', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3876" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3876', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3877" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3877', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3878" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3878', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3728"></a><tt class="py-lineno">3728</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3879" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3785', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3786" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3786', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3787" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3787', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3788" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3788', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3789" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3789', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3790" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3790', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3667"></a><tt class="py-lineno">3667</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3791" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3879', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3880" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3880', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3881" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3881', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3882" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3882', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3883" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3883', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3884" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3884', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3740"></a><tt class="py-lineno">3740</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3885" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3791', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3792" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3792', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt id="link-3793" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3885', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3886" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3886', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt id="link-3887" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3793', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3794" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3794', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3795" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3795', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3796" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3796', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">            <tt id="link-3797" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3797', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3798" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3798', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3799" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3799', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3800" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3800', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3801" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3887', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3888" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3888', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3889" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3889', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3890" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3890', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3745"></a><tt class="py-lineno">3745</tt>  <tt class="py-line">            <tt id="link-3891" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3891', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3892" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3892', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3893" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3893', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3746"></a><tt class="py-lineno">3746</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3894" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3894', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3895" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3801', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3802" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3895', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3748"></a><tt class="py-lineno">3748</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3896" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3802', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3803" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3803', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3804" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3804', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">                          <tt id="link-3805" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3805', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3679"></a><tt class="py-lineno">3679</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3806" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3896', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3897" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3897', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3749"></a><tt class="py-lineno">3749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3898" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3898', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line">                          <tt id="link-3899" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3899', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3751"></a><tt class="py-lineno">3751</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3752"></a><tt class="py-lineno">3752</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3900" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3806', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3807" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3807', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt id="link-3808" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3900', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3901" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3901', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3754"></a><tt class="py-lineno">3754</tt>  <tt class="py-line">        <tt id="link-3902" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3808', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3809" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3809', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3810" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3810', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3811" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3811', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3812" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3812', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">                <tt id="link-3813" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3813', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3814" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3814', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3815" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3815', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3816" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3816', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3817" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3902', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3903" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3903', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3904" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3904', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3905" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3905', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3906" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3906', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3758"></a><tt class="py-lineno">3758</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">                <tt id="link-3907" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3907', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3908" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3908', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3909" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3909', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3762"></a><tt class="py-lineno">3762</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3910" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3910', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3911" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3817', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3818" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3911', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3912" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3818', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3819" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3819', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3820" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3820', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">                          <tt id="link-3821" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3821', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3695"></a><tt class="py-lineno">3695</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3822" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3912', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3913" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3913', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3765"></a><tt class="py-lineno">3765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3914" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3914', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">                          <tt id="link-3915" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3915', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3768"></a><tt class="py-lineno">3768</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3916" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3822', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3823" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3823', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3824" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3824', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3825" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3825', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3826" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3826', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3827" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3827', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3828" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3828', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3829', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3713"></a><tt class="py-lineno">3713</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3830" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3916', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3917', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3770"></a><tt class="py-lineno">3770</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3918" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3918', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3773"></a><tt class="py-lineno">3773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3919" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3919', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3920" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3920', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3778"></a><tt class="py-lineno">3778</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3921" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3921', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3779"></a><tt class="py-lineno">3779</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3922" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3922', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3923" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3923', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3786"></a><tt class="py-lineno">3786</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3924" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3830', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3831" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3831', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3832" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3924', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3925" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3925', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3926" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3832', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3833" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3833', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3834" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3834', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3835" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3835', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3836" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3926', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3927" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3927', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3928" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3928', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3929" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3929', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3930" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3836', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3837" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3837', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3838" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3838', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3839" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3839', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3720"></a><tt class="py-lineno">3720</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3840" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3930', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3931" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3931', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3932" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3932', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3792"></a><tt class="py-lineno">3792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3933', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3934" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3840', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3841" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3841', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3842" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3842', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3843" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3843', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3725"></a><tt class="py-lineno">3725</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3844" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3934', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3935" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3935', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3936" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3936', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3937" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3937', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3798"></a><tt class="py-lineno">3798</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3938" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3844', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3845" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3845', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3846" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3938', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3939" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3939', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3800"></a><tt class="py-lineno">3800</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3940" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3846', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3847" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3847', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3848" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3848', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3849" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3849', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3850" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3850', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3851" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3940', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3941" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3941', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3942" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3942', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3943" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3943', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3801"></a><tt class="py-lineno">3801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3944" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3944', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3802"></a><tt class="py-lineno">3802</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3803"></a><tt class="py-lineno">3803</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3945" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3851', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3852" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3852', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3853" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3853', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3854" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3854', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3855" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3855', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3856" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3945', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3946" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3946', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3947" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3947', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3948" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3948', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3949" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3949', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3805"></a><tt class="py-lineno">3805</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3806"></a><tt class="py-lineno">3806</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3950" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3856', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3857" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3857', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3858" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3858', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3859" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3859', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3860" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3860', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3737"></a><tt class="py-lineno">3737</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3861" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3950', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3951" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3951', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3952" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3952', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3953" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3953', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3954" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3954', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3809"></a><tt class="py-lineno">3809</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3810"></a><tt class="py-lineno">3810</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3811"></a><tt class="py-lineno">3811</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3955" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3861', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3862" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3862', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3863" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3863', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3864" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3864', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3745"></a><tt class="py-lineno">3745</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3746"></a><tt class="py-lineno">3746</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3865" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3865', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3748"></a><tt class="py-lineno">3748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3866" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3866', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3749"></a><tt class="py-lineno">3749</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3751"></a><tt class="py-lineno">3751</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3867" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3867', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3752"></a><tt class="py-lineno">3752</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3868" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3868', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3754"></a><tt class="py-lineno">3754</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line"> </tt>
-<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3869" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3869', 'write_c14n', 'link-3783');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3758"></a><tt class="py-lineno">3758</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3870" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3870', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3762"></a><tt class="py-lineno">3762</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3871" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3955', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3956" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3956', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3812"></a><tt class="py-lineno">3812</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3813"></a><tt class="py-lineno">3813</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3814"></a><tt class="py-lineno">3814</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3957" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3957', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3816"></a><tt class="py-lineno">3816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3958" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3958', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3817"></a><tt class="py-lineno">3817</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3819"></a><tt class="py-lineno">3819</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3959" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3959', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3821"></a><tt class="py-lineno">3821</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3960" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3960', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3822"></a><tt class="py-lineno">3822</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3824"></a><tt class="py-lineno">3824</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3961" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3961', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3962" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3962', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3828"></a><tt class="py-lineno">3828</tt>  <tt class="py-line"> </tt>
+<a name="L3829"></a><tt class="py-lineno">3829</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3830"></a><tt class="py-lineno">3830</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3963" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3963', 'write_c14n', 'link-3877');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3964" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3964', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3834"></a><tt class="py-lineno">3834</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3835"></a><tt class="py-lineno">3835</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3965" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3871', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3872" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3872', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3765"></a><tt class="py-lineno">3765</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3873" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3965', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3966" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3966', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3837"></a><tt class="py-lineno">3837</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3967" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3873', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3874" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3874', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3875" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3875', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3876" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3876', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3768"></a><tt class="py-lineno">3768</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3877" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3967', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3968" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3968', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3969" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3969', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3839"></a><tt class="py-lineno">3839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3970" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3970', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3840"></a><tt class="py-lineno">3840</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3841"></a><tt class="py-lineno">3841</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3971" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3877', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3878" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3878', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3879" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3879', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3880" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3880', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3770"></a><tt class="py-lineno">3770</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3881" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3971', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3972" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3972', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3973" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3973', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3842"></a><tt class="py-lineno">3842</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3974" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3974', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3975" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3881', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3882" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3882', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3883" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3883', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3884" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3884', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3773"></a><tt class="py-lineno">3773</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line"> </tt>
-<a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3885" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3975', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3976" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3976', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3977" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3977', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3978" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3978', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3847"></a><tt class="py-lineno">3847</tt>  <tt class="py-line"> </tt>
+<a name="L3848"></a><tt class="py-lineno">3848</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3979" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3885', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3886" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3886', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3887" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3887', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3888" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3888', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3778"></a><tt class="py-lineno">3778</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3779"></a><tt class="py-lineno">3779</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3889" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3979', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3980" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3980', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3981" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3981', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3849"></a><tt class="py-lineno">3849</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3982" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3982', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3850"></a><tt class="py-lineno">3850</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3851"></a><tt class="py-lineno">3851</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3852"></a><tt class="py-lineno">3852</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3853"></a><tt class="py-lineno">3853</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3983" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3889', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3890" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3890', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3891" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3983', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3984" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3984', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3854"></a><tt class="py-lineno">3854</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3985" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3891', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3892" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3892', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3893" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3893', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3894" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3894', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3895" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3895', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3896" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3985', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3986" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3986', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3987" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3987', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3988" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3988', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3856"></a><tt class="py-lineno">3856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3989" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3989', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3857"></a><tt class="py-lineno">3857</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3858"></a><tt class="py-lineno">3858</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3990" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3896', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3897" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3897', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3898" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3898', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3899" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3899', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3786"></a><tt class="py-lineno">3786</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3900" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3900', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3901" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3990', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3991" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3991', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3992" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3992', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3993" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3993', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3859"></a><tt class="py-lineno">3859</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3994" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3994', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3860"></a><tt class="py-lineno">3860</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3861"></a><tt class="py-lineno">3861</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3995" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3901', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3902" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3902', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3903" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3903', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3904" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3904', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3905" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3905', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line"> </tt>
-<a name="L3792"></a><tt class="py-lineno">3792</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3906" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3995', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3996" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3996', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3997" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3997', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3998" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3998', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3862"></a><tt class="py-lineno">3862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3999" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3999', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3864"></a><tt class="py-lineno">3864</tt>  <tt class="py-line"> </tt>
+<a name="L3865"></a><tt class="py-lineno">3865</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4000" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3906', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3907" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3907', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3908" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3908', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3909" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3909', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3910" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3910', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3911" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4000', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4001" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4001', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4002" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4002', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4003" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4003', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3866"></a><tt class="py-lineno">3866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4004" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4004', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3868"></a><tt class="py-lineno">3868</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4005" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3911', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3912" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3912', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3913" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3913', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3914" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3914', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3915" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3915', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3798"></a><tt class="py-lineno">3798</tt>  <tt class="py-line"> </tt>
-<a name="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3916" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4005', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4006" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4006', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4007" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4007', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4008" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4008', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3869"></a><tt class="py-lineno">3869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4009" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4009', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3870"></a><tt class="py-lineno">3870</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3871"></a><tt class="py-lineno">3871</tt>  <tt class="py-line"> </tt>
+<a name="L3872"></a><tt class="py-lineno">3872</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4010" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3916', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3917" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3917', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3918" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3918', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3919" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3919', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3800"></a><tt class="py-lineno">3800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3920" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3920', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3801"></a><tt class="py-lineno">3801</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3802"></a><tt class="py-lineno">3802</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3803"></a><tt class="py-lineno">3803</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
-<a name="L3805"></a><tt class="py-lineno">3805</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3921" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4010', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4011" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4011', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4012" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4012', 'getroot', 'link-752');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4013" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4013', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3873"></a><tt class="py-lineno">3873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4014" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4014', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3876"></a><tt class="py-lineno">3876</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3877"></a><tt class="py-lineno">3877</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
+<a name="L3878"></a><tt class="py-lineno">3878</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4015" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3921', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3922" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3922', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3806"></a><tt class="py-lineno">3806</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line"> </tt>
-<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3923" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4015', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4016" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4016', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3879"></a><tt class="py-lineno">3879</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3880"></a><tt class="py-lineno">3880</tt>  <tt class="py-line"> </tt>
+<a name="L3881"></a><tt class="py-lineno">3881</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4017" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3923', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3924" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3924', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3925" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3925', 'method', 'link-3393');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3809"></a><tt class="py-lineno">3809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3926" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3926', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3810"></a><tt class="py-lineno">3810</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3811"></a><tt class="py-lineno">3811</tt>  <tt class="py-line"> </tt>
-<a name="L3812"></a><tt class="py-lineno">3812</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3813"></a><tt class="py-lineno">3813</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3814"></a><tt class="py-lineno">3814</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3927" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4017', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4018" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4018', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4019" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4019', 'method', 'link-3449');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3882"></a><tt class="py-lineno">3882</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4020" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4020', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3883"></a><tt class="py-lineno">3883</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3884"></a><tt class="py-lineno">3884</tt>  <tt class="py-line"> </tt>
+<a name="L3885"></a><tt class="py-lineno">3885</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3886"></a><tt class="py-lineno">3886</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3887"></a><tt class="py-lineno">3887</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4021" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3927', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3928" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3928', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3816"></a><tt class="py-lineno">3816</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3817"></a><tt class="py-lineno">3817</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3929" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3929', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3819"></a><tt class="py-lineno">3819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3930" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3930', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3821"></a><tt class="py-lineno">3821</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3822"></a><tt class="py-lineno">3822</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3931" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4021', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4022" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4022', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3889"></a><tt class="py-lineno">3889</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3890"></a><tt class="py-lineno">3890</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4023" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4023', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3892"></a><tt class="py-lineno">3892</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4024" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4024', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3893"></a><tt class="py-lineno">3893</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3894"></a><tt class="py-lineno">3894</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3895"></a><tt class="py-lineno">3895</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4025" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3931', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3932" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3932', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3824"></a><tt class="py-lineno">3824</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3933" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3933', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3828"></a><tt class="py-lineno">3828</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3934" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3934', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3829"></a><tt class="py-lineno">3829</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3830"></a><tt class="py-lineno">3830</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3935" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3935', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3936" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3936', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3834"></a><tt class="py-lineno">3834</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3835"></a><tt class="py-lineno">3835</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3937" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4025', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4026" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4026', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3897"></a><tt class="py-lineno">3897</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3898"></a><tt class="py-lineno">3898</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4027" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4027', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3899"></a><tt class="py-lineno">3899</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3900"></a><tt class="py-lineno">3900</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3901"></a><tt class="py-lineno">3901</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4028" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-4028', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3903"></a><tt class="py-lineno">3903</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4029" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4029', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4030" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4030', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3905"></a><tt class="py-lineno">3905</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3906"></a><tt class="py-lineno">3906</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3907"></a><tt class="py-lineno">3907</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4031" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3937', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3938', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3837"></a><tt class="py-lineno">3837</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3939" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3939', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line">        <tt class="py-name">s0</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3839"></a><tt class="py-lineno">3839</tt>  <tt class="py-line"> </tt>
-<a name="L3840"></a><tt class="py-lineno">3840</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3841"></a><tt class="py-lineno">3841</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3940" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3940', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3842"></a><tt class="py-lineno">3842</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line"> </tt>
-<a name="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3941" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3941', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3847"></a><tt class="py-lineno">3847</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3848"></a><tt class="py-lineno">3848</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3849"></a><tt class="py-lineno">3849</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3850"></a><tt class="py-lineno">3850</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3942" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3942', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3851"></a><tt class="py-lineno">3851</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3852"></a><tt class="py-lineno">3852</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3943" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3943', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3853"></a><tt class="py-lineno">3853</tt>  <tt class="py-line"> </tt>
-<a name="L3854"></a><tt class="py-lineno">3854</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3944" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3944', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3856"></a><tt class="py-lineno">3856</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3857"></a><tt class="py-lineno">3857</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3858"></a><tt class="py-lineno">3858</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3859"></a><tt class="py-lineno">3859</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3860"></a><tt class="py-lineno">3860</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3945" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3945', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3861"></a><tt class="py-lineno">3861</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3862"></a><tt class="py-lineno">3862</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3946" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3946', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line"> </tt>
-<a name="L3864"></a><tt class="py-lineno">3864</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3947" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3947', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3865"></a><tt class="py-lineno">3865</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3866"></a><tt class="py-lineno">3866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3948" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3948', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3868"></a><tt class="py-lineno">3868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3949" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3949', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3869"></a><tt class="py-lineno">3869</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3870"></a><tt class="py-lineno">3870</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3871"></a><tt class="py-lineno">3871</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3872"></a><tt class="py-lineno">3872</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3950" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4031', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4032" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4032', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3910"></a><tt class="py-lineno">3910</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4033" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4033', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3911"></a><tt class="py-lineno">3911</tt>  <tt class="py-line">        <tt class="py-name">s0</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3912"></a><tt class="py-lineno">3912</tt>  <tt class="py-line"> </tt>
+<a name="L3913"></a><tt class="py-lineno">3913</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3914"></a><tt class="py-lineno">3914</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4034" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4034', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3915"></a><tt class="py-lineno">3915</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3916"></a><tt class="py-lineno">3916</tt>  <tt class="py-line"> </tt>
+<a name="L3917"></a><tt class="py-lineno">3917</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3918"></a><tt class="py-lineno">3918</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4035" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4035', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3919"></a><tt class="py-lineno">3919</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3920"></a><tt class="py-lineno">3920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3922"></a><tt class="py-lineno">3922</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3923"></a><tt class="py-lineno">3923</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4036" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-4036', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3924"></a><tt class="py-lineno">3924</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3925"></a><tt class="py-lineno">3925</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4037" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4037', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3926"></a><tt class="py-lineno">3926</tt>  <tt class="py-line"> </tt>
+<a name="L3927"></a><tt class="py-lineno">3927</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3928"></a><tt class="py-lineno">3928</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4038" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4038', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3930"></a><tt class="py-lineno">3930</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3931"></a><tt class="py-lineno">3931</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3932"></a><tt class="py-lineno">3932</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3933"></a><tt class="py-lineno">3933</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4039" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-4039', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3934"></a><tt class="py-lineno">3934</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3935"></a><tt class="py-lineno">3935</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-4040" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4040', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3936"></a><tt class="py-lineno">3936</tt>  <tt class="py-line"> </tt>
+<a name="L3937"></a><tt class="py-lineno">3937</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4041" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4041', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3938"></a><tt class="py-lineno">3938</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3939"></a><tt class="py-lineno">3939</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4042" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4042', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3940"></a><tt class="py-lineno">3940</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3941"></a><tt class="py-lineno">3941</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4043', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3942"></a><tt class="py-lineno">3942</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3943"></a><tt class="py-lineno">3943</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3944"></a><tt class="py-lineno">3944</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3945"></a><tt class="py-lineno">3945</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4044" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3950', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3951" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3951', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3873"></a><tt class="py-lineno">3873</tt>  <tt class="py-line">        <tt id="link-3952" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4044', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4045" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4045', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3946"></a><tt class="py-lineno">3946</tt>  <tt class="py-line">        <tt id="link-4046" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3952', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3953" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3953', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3954" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3954', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt id="link-3955" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3955', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3876"></a><tt class="py-lineno">3876</tt>  <tt class="py-line">            <tt id="link-3956" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3956', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3957" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3957', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3958" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3958', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3877"></a><tt class="py-lineno">3877</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3878"></a><tt class="py-lineno">3878</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3959" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3959', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3960" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4046', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-4047" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4047', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3947"></a><tt class="py-lineno">3947</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3948"></a><tt class="py-lineno">3948</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4048" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4048', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt id="link-4049" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4049', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3949"></a><tt class="py-lineno">3949</tt>  <tt class="py-line">            <tt id="link-4050" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4050', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4051" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4051', 'read_file', 'link-15');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4052" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4052', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3950"></a><tt class="py-lineno">3950</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3951"></a><tt class="py-lineno">3951</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4053" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4053', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-4054" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3960', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3879"></a><tt class="py-lineno">3879</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3961" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4054', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3952"></a><tt class="py-lineno">3952</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4055" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3961', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3962" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3962', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3880"></a><tt class="py-lineno">3880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3963" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3963', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3881"></a><tt class="py-lineno">3881</tt>  <tt class="py-line">                          <tt id="link-3964" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3964', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3882"></a><tt class="py-lineno">3882</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3883"></a><tt class="py-lineno">3883</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3884"></a><tt class="py-lineno">3884</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3965" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4055', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-4056" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4056', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3953"></a><tt class="py-lineno">3953</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4057" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4057', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3954"></a><tt class="py-lineno">3954</tt>  <tt class="py-line">                          <tt id="link-4058" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4058', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3955"></a><tt class="py-lineno">3955</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3956"></a><tt class="py-lineno">3956</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3957"></a><tt class="py-lineno">3957</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4059" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3965', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3966" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3966', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3885"></a><tt class="py-lineno">3885</tt>  <tt class="py-line">        <tt id="link-3967" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4059', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4060" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4060', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3958"></a><tt class="py-lineno">3958</tt>  <tt class="py-line">        <tt id="link-4061" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3967', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3968" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3968', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3886"></a><tt class="py-lineno">3886</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3887"></a><tt class="py-lineno">3887</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3969" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3969', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt id="link-3970" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3970', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3971" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3971', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3889"></a><tt class="py-lineno">3889</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3890"></a><tt class="py-lineno">3890</tt>  <tt class="py-line">                <tt id="link-3972" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3972', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3973" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3973', 'read', 'link-3788');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3892"></a><tt class="py-lineno">3892</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3974" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3974', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3893"></a><tt class="py-lineno">3893</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3894"></a><tt class="py-lineno">3894</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3975" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3975', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3976" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4061', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-4062" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4062', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3959"></a><tt class="py-lineno">3959</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3960"></a><tt class="py-lineno">3960</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4063" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4063', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt id="link-4064" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4064', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3961"></a><tt class="py-lineno">3961</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-4065" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4065', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3962"></a><tt class="py-lineno">3962</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3963"></a><tt class="py-lineno">3963</tt>  <tt class="py-line">                <tt id="link-4066" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4066', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4067" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-4067', 'read', 'link-3882');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3964"></a><tt class="py-lineno">3964</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3965"></a><tt class="py-lineno">3965</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4068" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4068', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3966"></a><tt class="py-lineno">3966</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3967"></a><tt class="py-lineno">3967</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4069" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4069', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-4070" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3976', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3895"></a><tt class="py-lineno">3895</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3977" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4070', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3968"></a><tt class="py-lineno">3968</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4071" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3977', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3978" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3978', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3979" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3979', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3897"></a><tt class="py-lineno">3897</tt>  <tt class="py-line">                          <tt id="link-3980" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3980', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3898"></a><tt class="py-lineno">3898</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3899"></a><tt class="py-lineno">3899</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3900"></a><tt class="py-lineno">3900</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3981" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4071', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-4072" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4072', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3969"></a><tt class="py-lineno">3969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4073" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4073', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3970"></a><tt class="py-lineno">3970</tt>  <tt class="py-line">                          <tt id="link-4074" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4074', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3971"></a><tt class="py-lineno">3971</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3972"></a><tt class="py-lineno">3972</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3973"></a><tt class="py-lineno">3973</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4075" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3981', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3982" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3982', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3901"></a><tt class="py-lineno">3901</tt>  <tt class="py-line">        <tt id="link-3983" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4075', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4076" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4076', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3974"></a><tt class="py-lineno">3974</tt>  <tt class="py-line">        <tt id="link-4077" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3983', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3984" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3984', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3903"></a><tt class="py-lineno">3903</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3985" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3985', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt id="link-3986" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3986', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line">            <tt id="link-3987" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3987', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3988" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4077', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-4078" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4078', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3975"></a><tt class="py-lineno">3975</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3976"></a><tt class="py-lineno">3976</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4079" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4079', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt id="link-4080" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4080', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3977"></a><tt class="py-lineno">3977</tt>  <tt class="py-line">            <tt id="link-4081" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4081', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4082" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3988', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3989" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3989', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3990" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4082', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4083" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4083', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4084" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3990', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3991" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4084', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4085" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3991', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3992" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3992', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3905"></a><tt class="py-lineno">3905</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3906"></a><tt class="py-lineno">3906</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3993" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3993', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-3994" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4085', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4086" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4086', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3978"></a><tt class="py-lineno">3978</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3979"></a><tt class="py-lineno">3979</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4087" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4087', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-4088" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3994', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3907"></a><tt class="py-lineno">3907</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3995" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4088', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3980"></a><tt class="py-lineno">3980</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4089" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3995', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3996" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3996', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3997" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3997', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line">                          <tt id="link-3998" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3998', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3910"></a><tt class="py-lineno">3910</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3911"></a><tt class="py-lineno">3911</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3912"></a><tt class="py-lineno">3912</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3999" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4089', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-4090" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4090', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3981"></a><tt class="py-lineno">3981</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4091" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4091', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3982"></a><tt class="py-lineno">3982</tt>  <tt class="py-line">                          <tt id="link-4092" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4092', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3983"></a><tt class="py-lineno">3983</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3984"></a><tt class="py-lineno">3984</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3985"></a><tt class="py-lineno">3985</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4093" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3999', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4000" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4000', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3913"></a><tt class="py-lineno">3913</tt>  <tt class="py-line">        <tt id="link-4001" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4093', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4094" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4094', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3986"></a><tt class="py-lineno">3986</tt>  <tt class="py-line">        <tt id="link-4095" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4001', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-4002" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4002', 'filename', 'link-3729');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3914"></a><tt class="py-lineno">3914</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3915"></a><tt class="py-lineno">3915</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4003" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4003', 'write', 'link-3721');">write</a></tt><tt class="py-op">(</tt><tt id="link-4004" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4004', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3916"></a><tt class="py-lineno">3916</tt>  <tt class="py-line">            <tt id="link-4005" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4005', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4006" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4095', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-4096" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4096', 'filename', 'link-3823');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3987"></a><tt class="py-lineno">3987</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3988"></a><tt class="py-lineno">3988</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4097" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4097', 'write', 'link-3815');">write</a></tt><tt class="py-op">(</tt><tt id="link-4098" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4098', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3989"></a><tt class="py-lineno">3989</tt>  <tt class="py-line">            <tt id="link-4099" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4099', 'data', 'link-1059');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4100" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4006', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4007" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4007', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4008" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4100', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4101" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4101', 'tostring', 'link-649');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4102" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4008', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4009" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4102', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4103" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4009', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3917"></a><tt class="py-lineno">3917</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-4010" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4010', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3918"></a><tt class="py-lineno">3918</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3919"></a><tt class="py-lineno">3919</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4011" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4011', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-4012" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4103', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3990"></a><tt class="py-lineno">3990</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-4104" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4104', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3991"></a><tt class="py-lineno">3991</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3992"></a><tt class="py-lineno">3992</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4105" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4105', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt id="link-4106" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4012', 'handle', 'link-3793');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3920"></a><tt class="py-lineno">3920</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4013" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-4106', 'handle', 'link-3887');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3993"></a><tt class="py-lineno">3993</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4107" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4013', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-4014" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4014', 'filename', 'link-3729');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4015" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4015', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3922"></a><tt class="py-lineno">3922</tt>  <tt class="py-line">                          <tt id="link-4016" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4016', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3923"></a><tt class="py-lineno">3923</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3924"></a><tt class="py-lineno">3924</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3925"></a><tt class="py-lineno">3925</tt>  <tt class="py-line">    <tt id="link-4017" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4107', 'remove', 'link-659');">remove</a></tt><tt class="py-op">(</tt><tt id="link-4108" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4108', 'filename', 'link-3823');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3994"></a><tt class="py-lineno">3994</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4109" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4109', '_bytes', 'link-24');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3995"></a><tt class="py-lineno">3995</tt>  <tt class="py-line">                          <tt id="link-4110" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4110', 'data', 'link-1059');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3996"></a><tt class="py-lineno">3996</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3997"></a><tt class="py-lineno">3997</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3998"></a><tt class="py-lineno">3998</tt>  <tt class="py-line">    <tt id="link-4111" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4017', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4018" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4111', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4112" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4018', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3926"></a><tt class="py-lineno">3926</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L3927"></a><tt class="py-lineno">3927</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L3928"></a><tt class="py-lineno">3928</tt>  <tt class="py-line">        <tt id="link-4019" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4112', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3999"></a><tt class="py-lineno">3999</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L4000"></a><tt class="py-lineno">4000</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L4001"></a><tt class="py-lineno">4001</tt>  <tt class="py-line">        <tt id="link-4113" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4019', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4020" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4113', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4114" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4020', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4021" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4114', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4115" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4021', 'parse', 'link-809');">parse</a></tt> </tt>
-<a name="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3930"></a><tt class="py-lineno">3930</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4022" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4115', 'parse', 'link-809');">parse</a></tt> </tt>
+<a name="L4002"></a><tt class="py-lineno">4002</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4003"></a><tt class="py-lineno">4003</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4116" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4022', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4023" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-4023', 'clear_error_log', 'link-4023');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3931"></a><tt class="py-lineno">3931</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3932"></a><tt class="py-lineno">3932</tt>  <tt class="py-line">            <tt id="link-4024" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4116', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4117" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-4117', 'clear_error_log', 'link-4117');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4004"></a><tt class="py-lineno">4004</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4005"></a><tt class="py-lineno">4005</tt>  <tt class="py-line">            <tt id="link-4118" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4024', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3933"></a><tt class="py-lineno">3933</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L3934"></a><tt class="py-lineno">3934</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3935"></a><tt class="py-lineno">3935</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L3936"></a><tt class="py-lineno">3936</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-4025" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4118', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4006"></a><tt class="py-lineno">4006</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L4007"></a><tt class="py-lineno">4007</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L4008"></a><tt class="py-lineno">4008</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L4009"></a><tt class="py-lineno">4009</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-4119" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
 lxml.etree.XSLT.error_log
 lxml.etree._Validator.error_log
 lxml.etree._XPathEvaluatorBase.error_log
-lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-4025', 'error_log', 'link-4025');">error_log</a></tt> </tt>
-<a name="L3937"></a><tt class="py-lineno">3937</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4026" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4026', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3938"></a><tt class="py-lineno">3938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4027" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4027', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4028" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4028', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3939"></a><tt class="py-lineno">3939</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-4029" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4029', 'log', 'link-4027');">log</a></tt><tt class="py-op">.</tt><tt id="link-4030" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4030', 'message', 'link-4030');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3940"></a><tt class="py-lineno">3940</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4031" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4031', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4032" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4032', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3941"></a><tt class="py-lineno">3941</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-4033" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4033', 'log', 'link-4027');">log</a></tt><tt class="py-op">.</tt><tt id="link-4034" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-4034', 'domain_name', 'link-4034');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3942"></a><tt class="py-lineno">3942</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4035" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4035', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4036" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4036', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3943"></a><tt class="py-lineno">3943</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-4037" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4037', 'log', 'link-4027');">log</a></tt><tt class="py-op">.</tt><tt id="link-4038" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-4038', 'type_name', 'link-4038');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3944"></a><tt class="py-lineno">3944</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4039" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4039', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4040" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4040', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3945"></a><tt class="py-lineno">3945</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-4041" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4041', 'log', 'link-4027');">log</a></tt><tt class="py-op">.</tt><tt id="link-4042" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-4042', 'line', 'link-4042');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3946"></a><tt class="py-lineno">3946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4043" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4043', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4044" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4044', 'log', 'link-4027');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3947"></a><tt class="py-lineno">3947</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-4045" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4045', 'log', 'link-4027');">log</a></tt><tt class="py-op">.</tt><tt id="link-4046" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-4046', 'column', 'link-4046');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3948"></a><tt class="py-lineno">3948</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L3949"></a><tt class="py-lineno">3949</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L3950"></a><tt class="py-lineno">3950</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
-<a name="L3951"></a><tt class="py-lineno">3951</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
-<a name="L3952"></a><tt class="py-lineno">3952</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3953"></a><tt class="py-lineno">3953</tt>  <tt class="py-line">        <tt id="link-4047" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-4119', 'error_log', 'link-4119');">error_log</a></tt> </tt>
+<a name="L4010"></a><tt class="py-lineno">4010</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4120" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4120', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4011"></a><tt class="py-lineno">4011</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4121" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4121', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4122" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4122', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4012"></a><tt class="py-lineno">4012</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-4123" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4123', 'log', 'link-4121');">log</a></tt><tt class="py-op">.</tt><tt id="link-4124" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4124', 'message', 'link-4124');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4013"></a><tt class="py-lineno">4013</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4125" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4125', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4126" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4126', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4014"></a><tt class="py-lineno">4014</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-4127" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4127', 'log', 'link-4121');">log</a></tt><tt class="py-op">.</tt><tt id="link-4128" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-4128', 'domain_name', 'link-4128');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4015"></a><tt class="py-lineno">4015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4129" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4129', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4130" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4130', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4016"></a><tt class="py-lineno">4016</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-4131" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4131', 'log', 'link-4121');">log</a></tt><tt class="py-op">.</tt><tt id="link-4132" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-4132', 'type_name', 'link-4132');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4017"></a><tt class="py-lineno">4017</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4133" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4133', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4134" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4134', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4018"></a><tt class="py-lineno">4018</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-4135" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4135', 'log', 'link-4121');">log</a></tt><tt class="py-op">.</tt><tt id="link-4136" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-4136', 'line', 'link-4136');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4019"></a><tt class="py-lineno">4019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4137" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4137', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4138" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4138', 'log', 'link-4121');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4020"></a><tt class="py-lineno">4020</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-4139" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4139', 'log', 'link-4121');">log</a></tt><tt class="py-op">.</tt><tt id="link-4140" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-4140', 'column', 'link-4140');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4021"></a><tt class="py-lineno">4021</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L4022"></a><tt class="py-lineno">4022</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L4023"></a><tt class="py-lineno">4023</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
+<a name="L4024"></a><tt class="py-lineno">4024</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
+<a name="L4025"></a><tt class="py-lineno">4025</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L4026"></a><tt class="py-lineno">4026</tt>  <tt class="py-line">        <tt id="link-4141" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4047', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4048" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4141', 'parse', 'link-809');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4142" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4048', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4049" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4142', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4143" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4049', 'parse', 'link-809');">parse</a></tt> </tt>
-<a name="L3954"></a><tt class="py-lineno">3954</tt>  <tt class="py-line"> </tt>
-<a name="L3955"></a><tt class="py-lineno">3955</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3956"></a><tt class="py-lineno">3956</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3957"></a><tt class="py-lineno">3957</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3958"></a><tt class="py-lineno">3958</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-4050" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-4050', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-4051" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4051', 'message', 'link-4030');">message</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3959"></a><tt class="py-lineno">3959</tt>  <tt class="py-line"> </tt>
-<a name="L3960"></a><tt class="py-lineno">3960</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4052" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4143', 'parse', 'link-809');">parse</a></tt> </tt>
+<a name="L4027"></a><tt class="py-lineno">4027</tt>  <tt class="py-line"> </tt>
+<a name="L4028"></a><tt class="py-lineno">4028</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L4029"></a><tt class="py-lineno">4029</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4030"></a><tt class="py-lineno">4030</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4031"></a><tt class="py-lineno">4031</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-4144" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-4144', 'append', 'link-673');">append</a></tt><tt class="py-op">(</tt><tt id="link-4145" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4145', 'message', 'link-4124');">message</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4032"></a><tt class="py-lineno">4032</tt>  <tt class="py-line"> </tt>
+<a name="L4033"></a><tt class="py-lineno">4033</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4146" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4052', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4053" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-4053', 'use_global_python_log', 'link-4053');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3961"></a><tt class="py-lineno">3961</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3962"></a><tt class="py-lineno">3962</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3963"></a><tt class="py-lineno">3963</tt>  <tt class="py-line">            <tt id="link-4054" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4146', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4147" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-4147', 'use_global_python_log', 'link-4147');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4034"></a><tt class="py-lineno">4034</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4035"></a><tt class="py-lineno">4035</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4036"></a><tt class="py-lineno">4036</tt>  <tt class="py-line">            <tt id="link-4148" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4054', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3964"></a><tt class="py-lineno">3964</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3965"></a><tt class="py-lineno">3965</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L3966"></a><tt class="py-lineno">3966</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4055" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4055', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3967"></a><tt class="py-lineno">3967</tt>  <tt class="py-line"> </tt>
-<a name="L3968"></a><tt class="py-lineno">3968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4056" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4056', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4057" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4057', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3969"></a><tt class="py-lineno">3969</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-4058" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4058', 'message', 'link-4030');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3970"></a><tt class="py-lineno">3970</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4059" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4059', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4060" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4060', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3971"></a><tt class="py-lineno">3971</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-4061" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4061', 'message', 'link-4030');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3972"></a><tt class="py-lineno">3972</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4062" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4062', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4063" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4063', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3973"></a><tt class="py-lineno">3973</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-4064" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4064', 'message', 'link-4030');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3974"></a><tt class="py-lineno">3974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4065" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4065', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4066" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4066', 'message', 'link-4030');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3975"></a><tt class="py-lineno">3975</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-4067" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4067', 'message', 'link-4030');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3976"></a><tt class="py-lineno">3976</tt>  <tt class="py-line"> </tt>
-<a name="L3977"></a><tt class="py-lineno">3977</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest"></a><div id="XMLPullParserTest-def"><a name="L3978"></a><tt class="py-lineno">3978</tt> <a class="py-toggle" href="#" id="XMLPullParserTest-toggle" onclick="return toggle('XMLPullParserTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLPullParserTest-expanded"><a name="L3979"></a><tt class="py-lineno">3979</tt>  <tt class="py-line">    <tt id="link-4068" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4148', 'parse', 'link-809');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4037"></a><tt class="py-lineno">4037</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L4038"></a><tt class="py-lineno">4038</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L4039"></a><tt class="py-lineno">4039</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4149" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4149', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4040"></a><tt class="py-lineno">4040</tt>  <tt class="py-line"> </tt>
+<a name="L4041"></a><tt class="py-lineno">4041</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4150" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4150', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4151" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4151', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4042"></a><tt class="py-lineno">4042</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-4152" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4152', 'message', 'link-4124');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4043"></a><tt class="py-lineno">4043</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4153" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4153', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4154" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4154', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4044"></a><tt class="py-lineno">4044</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-4155" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4155', 'message', 'link-4124');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4045"></a><tt class="py-lineno">4045</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4156" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4156', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4157" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4157', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4046"></a><tt class="py-lineno">4046</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-4158" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4158', 'message', 'link-4124');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4047"></a><tt class="py-lineno">4047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-4159" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4159', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4160" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4160', 'message', 'link-4124');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4048"></a><tt class="py-lineno">4048</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-4161" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4161', 'message', 'link-4124');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4049"></a><tt class="py-lineno">4049</tt>  <tt class="py-line"> </tt>
+<a name="L4050"></a><tt class="py-lineno">4050</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest"></a><div id="XMLPullParserTest-def"><a name="L4051"></a><tt class="py-lineno">4051</tt> <a class="py-toggle" href="#" id="XMLPullParserTest-toggle" onclick="return toggle('XMLPullParserTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLPullParserTest-expanded"><a name="L4052"></a><tt class="py-lineno">4052</tt>  <tt class="py-line">    <tt id="link-4162" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4068', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4069" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4162', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4163" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4069', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3980"></a><tt class="py-lineno">3980</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.assert_event_tags"></a><div id="XMLPullParserTest.assert_event_tags-def"><a name="L3981"></a><tt class="py-lineno">3981</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.assert_event_tags-toggle" onclick="return toggle('XMLPullParserTest.assert_event_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags">assert_event_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest.assert_event_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.assert_event_tags-expanded"><a name="L3982"></a><tt class="py-lineno">3982</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-4070" class="py-name" targets="Variable lxml.html.FormElement.action=lxml.html.FormElement-class.html#action"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4070', 'action', 'link-4070');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-4071" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4163', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L4053"></a><tt class="py-lineno">4053</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.assert_event_tags"></a><div id="XMLPullParserTest.assert_event_tags-def"><a name="L4054"></a><tt class="py-lineno">4054</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.assert_event_tags-toggle" onclick="return toggle('XMLPullParserTest.assert_event_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags">assert_event_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest.assert_event_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.assert_event_tags-expanded"><a name="L4055"></a><tt class="py-lineno">4055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-4164" class="py-name" targets="Variable lxml.html.FormElement.action=lxml.html.FormElement-class.html#action"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4164', 'action', 'link-4164');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-4165" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4071', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-4072" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4072', 'action', 'link-4070');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3983"></a><tt class="py-lineno">3983</tt>  <tt class="py-line">                         <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3984"></a><tt class="py-lineno">3984</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.test_pull_from_simple_target"></a><div id="XMLPullParserTest.test_pull_from_simple_target-def"><a name="L3985"></a><tt class="py-lineno">3985</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_simple_target-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_simple_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest.test_pull_from_simple_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_simple_target-expanded"><a name="L3986"></a><tt class="py-lineno">3986</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3987"></a><tt class="py-lineno">3987</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3988"></a><tt class="py-lineno">3988</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'start(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4073" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4165', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-4166" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4166', 'action', 'link-4164');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4056"></a><tt class="py-lineno">4056</tt>  <tt class="py-line">                         <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4057"></a><tt class="py-lineno">4057</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.test_pull_from_simple_target"></a><div id="XMLPullParserTest.test_pull_from_simple_target-def"><a name="L4058"></a><tt class="py-lineno">4058</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_simple_target-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_simple_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest.test_pull_from_simple_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_simple_target-expanded"><a name="L4059"></a><tt class="py-lineno">4059</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4060"></a><tt class="py-lineno">4060</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4061"></a><tt class="py-lineno">4061</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'start(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4167" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4073', 'tag', 'link-68');">tag</a></tt> </tt>
-</div><a name="L3989"></a><tt class="py-lineno">3989</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3990"></a><tt class="py-lineno">3990</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'end(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4074" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4167', 'tag', 'link-68');">tag</a></tt> </tt>
+</div><a name="L4062"></a><tt class="py-lineno">4062</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4063"></a><tt class="py-lineno">4063</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'end(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4168" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4074', 'tag', 'link-68');">tag</a></tt> </tt>
-</div><a name="L3991"></a><tt class="py-lineno">3991</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3992"></a><tt class="py-lineno">3992</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
-</div></div><a name="L3993"></a><tt class="py-lineno">3993</tt>  <tt class="py-line"> </tt>
-<a name="L3994"></a><tt class="py-lineno">3994</tt>  <tt class="py-line">        <tt id="link-4075" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4075', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4076" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4076', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4077" class="py-name" targets="Class lxml.etree.XMLPullParser=lxml.etree.XMLPullParser-class.html"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4077', 'XMLPullParser', 'link-4077');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt id="link-4078" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4078', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3995"></a><tt class="py-lineno">3995</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4079" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4079', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4080" class="py-name" targets="Method lxml.etree.HTMLPullParser.read_events()=lxml.etree.HTMLPullParser-class.html#read_events,Method lxml.etree.XMLPullParser.read_events()=lxml.etree.XMLPullParser-class.html#read_events"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4080', 'read_events', 'link-4080');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3996"></a><tt class="py-lineno">3996</tt>  <tt class="py-line"> </tt>
-<a name="L3997"></a><tt class="py-lineno">3997</tt>  <tt class="py-line">        <tt id="link-4081" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4081', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4082" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4082', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3998"></a><tt class="py-lineno">3998</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4083" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4083', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3999"></a><tt class="py-lineno">3999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4084" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4084', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4000"></a><tt class="py-lineno">4000</tt>  <tt class="py-line">        <tt id="link-4085" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4085', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4086" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4086', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4001"></a><tt class="py-lineno">4001</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(element)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4002"></a><tt class="py-lineno">4002</tt>  <tt class="py-line">        <tt id="link-4087" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4087', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4088" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4088', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4003"></a><tt class="py-lineno">4003</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4004"></a><tt class="py-lineno">4004</tt>  <tt class="py-line">        <tt id="link-4089" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4089', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4090" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4090', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4005"></a><tt class="py-lineno">4005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(root)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4006"></a><tt class="py-lineno">4006</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4091" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4091', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4007"></a><tt class="py-lineno">4007</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'close()'</tt><tt class="py-op">,</tt> <tt id="link-4092" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4092', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4093" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4093', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4008"></a><tt class="py-lineno">4008</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.test_pull_from_simple_target_start_end"></a><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-def"><a name="L4009"></a><tt class="py-lineno">4009</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_simple_target_start_end-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_simple_target_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-expanded"><a name="L4010"></a><tt class="py-lineno">4010</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4011"></a><tt class="py-lineno">4011</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4012"></a><tt class="py-lineno">4012</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'start(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4094" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4168', 'tag', 'link-68');">tag</a></tt> </tt>
+</div><a name="L4064"></a><tt class="py-lineno">4064</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4065"></a><tt class="py-lineno">4065</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
+</div></div><a name="L4066"></a><tt class="py-lineno">4066</tt>  <tt class="py-line"> </tt>
+<a name="L4067"></a><tt class="py-lineno">4067</tt>  <tt class="py-line">        <tt id="link-4169" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4169', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4170" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4170', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4171" class="py-name" targets="Class lxml.etree.XMLPullParser=lxml.etree.XMLPullParser-class.html"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4171', 'XMLPullParser', 'link-4171');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt id="link-4172" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4172', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4068"></a><tt class="py-lineno">4068</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4173" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4173', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4174" class="py-name" targets="Method lxml.etree.HTMLPullParser.read_events()=lxml.etree.HTMLPullParser-class.html#read_events,Method lxml.etree.XMLPullParser.read_events()=lxml.etree.XMLPullParser-class.html#read_events"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4174', 'read_events', 'link-4174');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4069"></a><tt class="py-lineno">4069</tt>  <tt class="py-line"> </tt>
+<a name="L4070"></a><tt class="py-lineno">4070</tt>  <tt class="py-line">        <tt id="link-4175" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4175', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4176" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4176', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4071"></a><tt class="py-lineno">4071</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4177" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4177', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4072"></a><tt class="py-lineno">4072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4178" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4178', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4073"></a><tt class="py-lineno">4073</tt>  <tt class="py-line">        <tt id="link-4179" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4179', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4180" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4180', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4074"></a><tt class="py-lineno">4074</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(element)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4075"></a><tt class="py-lineno">4075</tt>  <tt class="py-line">        <tt id="link-4181" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4181', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4182" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4182', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4076"></a><tt class="py-lineno">4076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4077"></a><tt class="py-lineno">4077</tt>  <tt class="py-line">        <tt id="link-4183" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4183', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4184" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4184', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4078"></a><tt class="py-lineno">4078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(root)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4079"></a><tt class="py-lineno">4079</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4185" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4185', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4080"></a><tt class="py-lineno">4080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'close()'</tt><tt class="py-op">,</tt> <tt id="link-4186" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4186', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4187" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4187', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4081"></a><tt class="py-lineno">4081</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.test_pull_from_simple_target_start_end"></a><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-def"><a name="L4082"></a><tt class="py-lineno">4082</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_simple_target_start_end-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_simple_target_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_simple_target_start_end-expanded"><a name="L4083"></a><tt class="py-lineno">4083</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4084"></a><tt class="py-lineno">4084</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4085"></a><tt class="py-lineno">4085</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'start(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4188" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4094', 'tag', 'link-68');">tag</a></tt> </tt>
-</div><a name="L4013"></a><tt class="py-lineno">4013</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4014"></a><tt class="py-lineno">4014</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'end(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4095" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4188', 'tag', 'link-68');">tag</a></tt> </tt>
+</div><a name="L4086"></a><tt class="py-lineno">4086</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4087"></a><tt class="py-lineno">4087</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'end(%s)'</tt> <tt class="py-op">%</tt> <tt id="link-4189" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4095', 'tag', 'link-68');">tag</a></tt> </tt>
-</div><a name="L4015"></a><tt class="py-lineno">4015</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4016"></a><tt class="py-lineno">4016</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
-</div></div><a name="L4017"></a><tt class="py-lineno">4017</tt>  <tt class="py-line"> </tt>
-<a name="L4018"></a><tt class="py-lineno">4018</tt>  <tt class="py-line">        <tt id="link-4096" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4096', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4097" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4097', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4098" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4098', 'XMLPullParser', 'link-4077');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4019"></a><tt class="py-lineno">4019</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4099" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4099', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4020"></a><tt class="py-lineno">4020</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4100" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4100', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4101" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4101', 'read_events', 'link-4080');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4021"></a><tt class="py-lineno">4021</tt>  <tt class="py-line"> </tt>
-<a name="L4022"></a><tt class="py-lineno">4022</tt>  <tt class="py-line">        <tt id="link-4102" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4102', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4103" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4103', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4023"></a><tt class="py-lineno">4023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4024"></a><tt class="py-lineno">4024</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(root)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(element)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L4025"></a><tt class="py-lineno">4025</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4026"></a><tt class="py-lineno">4026</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4104" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4104', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4027"></a><tt class="py-lineno">4027</tt>  <tt class="py-line">        <tt id="link-4105" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4105', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4106" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4106', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4028"></a><tt class="py-lineno">4028</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4029"></a><tt class="py-lineno">4029</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(element)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L4030"></a><tt class="py-lineno">4030</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4031"></a><tt class="py-lineno">4031</tt>  <tt class="py-line">        <tt id="link-4107" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4107', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4108" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4108', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4032"></a><tt class="py-lineno">4032</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4033"></a><tt class="py-lineno">4033</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L4034"></a><tt class="py-lineno">4034</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4035"></a><tt class="py-lineno">4035</tt>  <tt class="py-line">        <tt id="link-4109" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4109', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4110" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4110', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4036"></a><tt class="py-lineno">4036</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4037"></a><tt class="py-lineno">4037</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(root)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L4038"></a><tt class="py-lineno">4038</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4039"></a><tt class="py-lineno">4039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4111" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4111', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4040"></a><tt class="py-lineno">4040</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'close()'</tt><tt class="py-op">,</tt> <tt id="link-4112" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4112', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4113" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4113', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4041"></a><tt class="py-lineno">4041</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.test_pull_from_tree_builder"></a><div id="XMLPullParserTest.test_pull_from_tree_builder-def"><a name="L4042"></a><tt class="py-lineno">4042</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_tree_builder-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_tree_builder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest.test_pull_from_tree_builder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_tree_builder-expanded"><a name="L4043"></a><tt class="py-lineno">4043</tt>  <tt class="py-line">        <tt id="link-4114" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4114', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4115" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4115', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4116" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4116', 'XMLPullParser', 'link-4077');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4044"></a><tt class="py-lineno">4044</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4117" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4117', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt id="link-4118" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4118', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4119" class="py-name" targets="Class lxml.etree.TreeBuilder=lxml.etree.TreeBuilder-class.html,Class xml.etree.ElementTree.TreeBuilder=xml.etree.ElementTree.TreeBuilder-class.html"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-4119', 'TreeBuilder', 'link-4119');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4045"></a><tt class="py-lineno">4045</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4120" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4120', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4121" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4121', 'read_events', 'link-4080');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4046"></a><tt class="py-lineno">4046</tt>  <tt class="py-line"> </tt>
-<a name="L4047"></a><tt class="py-lineno">4047</tt>  <tt class="py-line">        <tt id="link-4122" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4122', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4123" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4123', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4048"></a><tt class="py-lineno">4048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4124" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags,Method lxml.tests.test_etree.XMLPullParserTest.assert_event_tags()=lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4124', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4049"></a><tt class="py-lineno">4049</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4050"></a><tt class="py-lineno">4050</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4125" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4125', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4051"></a><tt class="py-lineno">4051</tt>  <tt class="py-line">        <tt id="link-4126" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4126', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4127" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4127', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4052"></a><tt class="py-lineno">4052</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4128" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4128', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4053"></a><tt class="py-lineno">4053</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4054"></a><tt class="py-lineno">4054</tt>  <tt class="py-line">        <tt id="link-4129" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4129', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4130" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4130', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4055"></a><tt class="py-lineno">4055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4131" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4131', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4056"></a><tt class="py-lineno">4056</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4057"></a><tt class="py-lineno">4057</tt>  <tt class="py-line">        <tt id="link-4132" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4132', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4133" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4133', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4058"></a><tt class="py-lineno">4058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4134" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4134', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4059"></a><tt class="py-lineno">4059</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4060"></a><tt class="py-lineno">4060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4135" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4135', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4061"></a><tt class="py-lineno">4061</tt>  <tt class="py-line">        <tt id="link-4136" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4136', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4137" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4137', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4138" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4138', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4062"></a><tt class="py-lineno">4062</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt id="link-4139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4139', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-4140" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4189', 'tag', 'link-68');">tag</a></tt> </tt>
+</div><a name="L4088"></a><tt class="py-lineno">4088</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4089"></a><tt class="py-lineno">4089</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
+</div></div><a name="L4090"></a><tt class="py-lineno">4090</tt>  <tt class="py-line"> </tt>
+<a name="L4091"></a><tt class="py-lineno">4091</tt>  <tt class="py-line">        <tt id="link-4190" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4190', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4191" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4191', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4192" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4192', 'XMLPullParser', 'link-4171');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4092"></a><tt class="py-lineno">4092</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4193" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4193', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4093"></a><tt class="py-lineno">4093</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4194" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4194', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4195" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4195', 'read_events', 'link-4174');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4094"></a><tt class="py-lineno">4094</tt>  <tt class="py-line"> </tt>
+<a name="L4095"></a><tt class="py-lineno">4095</tt>  <tt class="py-line">        <tt id="link-4196" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4196', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4197" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4197', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4096"></a><tt class="py-lineno">4096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4097"></a><tt class="py-lineno">4097</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(root)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(element)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4098"></a><tt class="py-lineno">4098</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4099"></a><tt class="py-lineno">4099</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4198" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4198', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4100"></a><tt class="py-lineno">4100</tt>  <tt class="py-line">        <tt id="link-4199" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4199', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4200" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4200', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4101"></a><tt class="py-lineno">4101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4102"></a><tt class="py-lineno">4102</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(element)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4103"></a><tt class="py-lineno">4103</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4104"></a><tt class="py-lineno">4104</tt>  <tt class="py-line">        <tt id="link-4201" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4201', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4202" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4202', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4105"></a><tt class="py-lineno">4105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4106"></a><tt class="py-lineno">4106</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(child)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4107"></a><tt class="py-lineno">4107</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4108"></a><tt class="py-lineno">4108</tt>  <tt class="py-line">        <tt id="link-4203" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4203', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4204" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4204', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4109"></a><tt class="py-lineno">4109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4110"></a><tt class="py-lineno">4110</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end(root)'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4111"></a><tt class="py-lineno">4111</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4112"></a><tt class="py-lineno">4112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4205" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4205', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4113"></a><tt class="py-lineno">4113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'close()'</tt><tt class="py-op">,</tt> <tt id="link-4206" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4206', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4207" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4207', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4114"></a><tt class="py-lineno">4114</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.test_pull_from_tree_builder"></a><div id="XMLPullParserTest.test_pull_from_tree_builder-def"><a name="L4115"></a><tt class="py-lineno">4115</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_tree_builder-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_tree_builder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest.test_pull_from_tree_builder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_tree_builder-expanded"><a name="L4116"></a><tt class="py-lineno">4116</tt>  <tt class="py-line">        <tt id="link-4208" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4208', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4209" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4209', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4210" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4210', 'XMLPullParser', 'link-4171');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4117"></a><tt class="py-lineno">4117</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4211" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4211', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt id="link-4212" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4212', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4213" class="py-name" targets="Class lxml.etree.TreeBuilder=lxml.etree.TreeBuilder-class.html,Class xml.etree.ElementTree.TreeBuilder=xml.etree.ElementTree.TreeBuilder-class.html"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-4213', 'TreeBuilder', 'link-4213');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4118"></a><tt class="py-lineno">4118</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4214" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4214', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4215" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4215', 'read_events', 'link-4174');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4119"></a><tt class="py-lineno">4119</tt>  <tt class="py-line"> </tt>
+<a name="L4120"></a><tt class="py-lineno">4120</tt>  <tt class="py-line">        <tt id="link-4216" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4216', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4217" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4217', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4121"></a><tt class="py-lineno">4121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4218" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags,Method lxml.tests.test_etree.XMLPullParserTest.assert_event_tags()=lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4218', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4122"></a><tt class="py-lineno">4122</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4123"></a><tt class="py-lineno">4123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4219" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4219', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4124"></a><tt class="py-lineno">4124</tt>  <tt class="py-line">        <tt id="link-4220" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4220', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4221" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4221', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4125"></a><tt class="py-lineno">4125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4222" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4222', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4126"></a><tt class="py-lineno">4126</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4127"></a><tt class="py-lineno">4127</tt>  <tt class="py-line">        <tt id="link-4223" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4223', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4224" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4224', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4128"></a><tt class="py-lineno">4128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4225" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4225', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4129"></a><tt class="py-lineno">4129</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4130"></a><tt class="py-lineno">4130</tt>  <tt class="py-line">        <tt id="link-4226" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4226', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4227" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4227', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4131"></a><tt class="py-lineno">4131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4228" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4228', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4132"></a><tt class="py-lineno">4132</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4133"></a><tt class="py-lineno">4133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4229" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4229', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4134"></a><tt class="py-lineno">4134</tt>  <tt class="py-line">        <tt id="link-4230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4230', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4231" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4231', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4232" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4232', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4135"></a><tt class="py-lineno">4135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt id="link-4233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4233', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-4234" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4140', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4063"></a><tt class="py-lineno">4063</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.test_pull_from_tree_builder_subclass"></a><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-def"><a name="L4064"></a><tt class="py-lineno">4064</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_tree_builder_subclass-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_tree_builder_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-expanded"><a name="L4065"></a><tt class="py-lineno">4065</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">TreeBuilder</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4066"></a><tt class="py-lineno">4066</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4067"></a><tt class="py-lineno">4067</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt class="py-name">Target</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4141" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-4141', 'end', 'link-4141');">end</a></tt><tt class="py-op">(</tt><tt id="link-4142" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4234', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4136"></a><tt class="py-lineno">4136</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.test_pull_from_tree_builder_subclass"></a><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-def"><a name="L4137"></a><tt class="py-lineno">4137</tt> <a class="py-toggle" href="#" id="XMLPullParserTest.test_pull_from_tree_builder_subclass-toggle" onclick="return toggle('XMLPullParserTest.test_pull_from_tree_builder_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLPullParserTest.test_pull_from_tree_builder_subclass-expanded"><a name="L4138"></a><tt class="py-lineno">4138</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">TreeBuilder</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4139"></a><tt class="py-lineno">4139</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4140"></a><tt class="py-lineno">4140</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt class="py-name">Target</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4235" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-4235', 'end', 'link-4235');">end</a></tt><tt class="py-op">(</tt><tt id="link-4236" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4142', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4068"></a><tt class="py-lineno">4068</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-4143" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4236', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4141"></a><tt class="py-lineno">4141</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-4237" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4143', 'tag', 'link-68');">tag</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'-huhu'</tt> </tt>
-<a name="L4069"></a><tt class="py-lineno">4069</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
-</div></div><a name="L4070"></a><tt class="py-lineno">4070</tt>  <tt class="py-line"> </tt>
-<a name="L4071"></a><tt class="py-lineno">4071</tt>  <tt class="py-line">        <tt id="link-4144" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4144', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4145" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4145', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4146" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4146', 'XMLPullParser', 'link-4077');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4072"></a><tt class="py-lineno">4072</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4147" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4147', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4073"></a><tt class="py-lineno">4073</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4148" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4148', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4149" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4149', 'read_events', 'link-4080');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4074"></a><tt class="py-lineno">4074</tt>  <tt class="py-line"> </tt>
-<a name="L4075"></a><tt class="py-lineno">4075</tt>  <tt class="py-line">        <tt id="link-4150" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4150', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4151" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4151', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4076"></a><tt class="py-lineno">4076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4152" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4152', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4077"></a><tt class="py-lineno">4077</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4078"></a><tt class="py-lineno">4078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4153" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4153', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4079"></a><tt class="py-lineno">4079</tt>  <tt class="py-line">        <tt id="link-4154" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4154', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4155" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4155', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4080"></a><tt class="py-lineno">4080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4156" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4156', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4081"></a><tt class="py-lineno">4081</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4082"></a><tt class="py-lineno">4082</tt>  <tt class="py-line">        <tt id="link-4157" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4157', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4158" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4158', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4083"></a><tt class="py-lineno">4083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4159" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4159', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4084"></a><tt class="py-lineno">4084</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'child-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4085"></a><tt class="py-lineno">4085</tt>  <tt class="py-line">        <tt id="link-4160" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4160', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4161" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4161', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4086"></a><tt class="py-lineno">4086</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4162" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4162', 'assert_event_tags', 'link-4124');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4087"></a><tt class="py-lineno">4087</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4088"></a><tt class="py-lineno">4088</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4163" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4163', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4089"></a><tt class="py-lineno">4089</tt>  <tt class="py-line">        <tt id="link-4164" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4164', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4165" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4165', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4166" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4166', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4090"></a><tt class="py-lineno">4090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'root-huhu'</tt><tt class="py-op">,</tt> <tt id="link-4167" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4167', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-4168" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4237', 'tag', 'link-68');">tag</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'-huhu'</tt> </tt>
+<a name="L4142"></a><tt class="py-lineno">4142</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
+</div></div><a name="L4143"></a><tt class="py-lineno">4143</tt>  <tt class="py-line"> </tt>
+<a name="L4144"></a><tt class="py-lineno">4144</tt>  <tt class="py-line">        <tt id="link-4238" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4238', 'parser', 'link-800');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4239" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4239', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4240" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4240', 'XMLPullParser', 'link-4171');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4145"></a><tt class="py-lineno">4145</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-4241" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4241', 'target', 'link-674');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4146"></a><tt class="py-lineno">4146</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4242" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4242', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4243" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4243', 'read_events', 'link-4174');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4147"></a><tt class="py-lineno">4147</tt>  <tt class="py-line"> </tt>
+<a name="L4148"></a><tt class="py-lineno">4148</tt>  <tt class="py-line">        <tt id="link-4244" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4244', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4245" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4245', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;element&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4149"></a><tt class="py-lineno">4149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4246" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4246', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4150"></a><tt class="py-lineno">4150</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4151"></a><tt class="py-lineno">4151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4247" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4247', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4152"></a><tt class="py-lineno">4152</tt>  <tt class="py-line">        <tt id="link-4248" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4248', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4249" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4249', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/element&gt;&lt;child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4153"></a><tt class="py-lineno">4153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4250" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4250', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4154"></a><tt class="py-lineno">4154</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4155"></a><tt class="py-lineno">4155</tt>  <tt class="py-line">        <tt id="link-4251" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4251', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4252" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4252', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4156"></a><tt class="py-lineno">4156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4253" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4253', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4157"></a><tt class="py-lineno">4157</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'child-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4158"></a><tt class="py-lineno">4158</tt>  <tt class="py-line">        <tt id="link-4254" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4254', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4255" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4255', 'feed', 'link-1012');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4159"></a><tt class="py-lineno">4159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4256" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-4256', 'assert_event_tags', 'link-4218');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4160"></a><tt class="py-lineno">4160</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root-huhu'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4161"></a><tt class="py-lineno">4161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4257" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-4257', 'assertFalse', 'link-1036');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4162"></a><tt class="py-lineno">4162</tt>  <tt class="py-line">        <tt id="link-4258" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4258', 'root', 'link-215');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4259" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4259', 'parser', 'link-800');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4260" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-4260', 'close', 'link-1025');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4163"></a><tt class="py-lineno">4163</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'root-huhu'</tt><tt class="py-op">,</tt> <tt id="link-4261" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4261', 'root', 'link-215');">root</a></tt><tt class="py-op">.</tt><tt id="link-4262" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4168', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4091"></a><tt class="py-lineno">4091</tt>  <tt class="py-line"> </tt>
-<a name="L4092"></a><tt class="py-lineno">4092</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L4093"></a><tt class="py-lineno">4093</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L4094"></a><tt class="py-lineno">4094</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4095"></a><tt class="py-lineno">4095</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4169" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-4169', 'ETreeOnlyTestCase', 'link-4169');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4096"></a><tt class="py-lineno">4096</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4170" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-4170', 'ETreeXIncludeTestCase', 'link-4170');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4097"></a><tt class="py-lineno">4097</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4171" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-4171', 'ElementIncludeTestCase', 'link-4171');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4098"></a><tt class="py-lineno">4098</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4172" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-4172', 'ETreeC14NTestCase', 'link-4172');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4099"></a><tt class="py-lineno">4099</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4173" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-4173', 'ETreeWriteTestCase', 'link-4173');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4100"></a><tt class="py-lineno">4100</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4174" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-4174', 'ETreeErrorLogTest', 'link-4174');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4101"></a><tt class="py-lineno">4101</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4175" class="py-name" targets="Class lxml.tests.test_etree.XMLPullParserTest=lxml.tests.test_etree.XMLPullParserTest-class.html"><a title="lxml.tests.test_etree.XMLPullParserTest" class="py-name" href="#" onclick="return doclink('link-4175', 'XMLPullParserTest', 'link-4175');">XMLPullParserTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4102"></a><tt class="py-lineno">4102</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-name">doctest</tt><tt class="py-op">.</tt><tt class="py-name">DocTestSuite</tt><tt class="py-op">(</tt><tt id="link-4176" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4176', 'etree', 'link-10');">etree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4103"></a><tt class="py-lineno">4103</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L4104"></a><tt class="py-lineno">4104</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4177" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4177', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4105"></a><tt class="py-lineno">4105</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4106"></a><tt class="py-lineno">4106</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
-<a name="L4107"></a><tt class="py-lineno">4107</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L4108"></a><tt class="py-lineno">4108</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-4178" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4178', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4109"></a><tt class="py-lineno">4109</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L4110"></a><tt class="py-lineno">4110</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4179" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4179', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4111"></a><tt class="py-lineno">4111</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L4112"></a><tt class="py-lineno">4112</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4180" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4180', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4113"></a><tt class="py-lineno">4113</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L4114"></a><tt class="py-lineno">4114</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4181" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4181', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4115"></a><tt class="py-lineno">4115</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L4116"></a><tt class="py-lineno">4116</tt>  <tt class="py-line"> </tt>
-<a name="L4117"></a><tt class="py-lineno">4117</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L4118"></a><tt class="py-lineno">4118</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L4119"></a><tt class="py-lineno">4119</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4262', 'tag', 'link-68');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4164"></a><tt class="py-lineno">4164</tt>  <tt class="py-line"> </tt>
+<a name="L4165"></a><tt class="py-lineno">4165</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L4166"></a><tt class="py-lineno">4166</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L4167"></a><tt class="py-lineno">4167</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4168"></a><tt class="py-lineno">4168</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4263" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-4263', 'ETreeOnlyTestCase', 'link-4263');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4169"></a><tt class="py-lineno">4169</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4264" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-4264', 'ETreeXIncludeTestCase', 'link-4264');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4170"></a><tt class="py-lineno">4170</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4265" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-4265', 'ElementIncludeTestCase', 'link-4265');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4171"></a><tt class="py-lineno">4171</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4266" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-4266', 'ETreeC14NTestCase', 'link-4266');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4172"></a><tt class="py-lineno">4172</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4267" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-4267', 'ETreeWriteTestCase', 'link-4267');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4173"></a><tt class="py-lineno">4173</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4268" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-4268', 'ETreeErrorLogTest', 'link-4268');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4174"></a><tt class="py-lineno">4174</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4269" class="py-name" targets="Class lxml.tests.test_etree.XMLPullParserTest=lxml.tests.test_etree.XMLPullParserTest-class.html"><a title="lxml.tests.test_etree.XMLPullParserTest" class="py-name" href="#" onclick="return doclink('link-4269', 'XMLPullParserTest', 'link-4269');">XMLPullParserTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4175"></a><tt class="py-lineno">4175</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-name">doctest</tt><tt class="py-op">.</tt><tt class="py-name">DocTestSuite</tt><tt class="py-op">(</tt><tt id="link-4270" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4270', 'etree', 'link-10');">etree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4176"></a><tt class="py-lineno">4176</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L4177"></a><tt class="py-lineno">4177</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4271" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4271', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4178"></a><tt class="py-lineno">4178</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4179"></a><tt class="py-lineno">4179</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
+<a name="L4180"></a><tt class="py-lineno">4180</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L4181"></a><tt class="py-lineno">4181</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-4272" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4272', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4182"></a><tt class="py-lineno">4182</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L4183"></a><tt class="py-lineno">4183</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4273" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4273', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4184"></a><tt class="py-lineno">4184</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L4185"></a><tt class="py-lineno">4185</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4274" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4274', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4186"></a><tt class="py-lineno">4186</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L4187"></a><tt class="py-lineno">4187</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4275" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4275', 'make_doctest', 'link-20');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4188"></a><tt class="py-lineno">4188</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L4189"></a><tt class="py-lineno">4189</tt>  <tt class="py-line"> </tt>
+<a name="L4190"></a><tt class="py-lineno">4190</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L4191"></a><tt class="py-lineno">4191</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L4192"></a><tt class="py-lineno">4192</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -11057,7 +11283,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a112335..ad2d3ec 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d47031..3ddedee 100644 (file)
@@ -402,7 +402,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4be61ad..dc5a331 100644 (file)
@@ -1756,6 +1756,70 @@ Tests only for etree, not ElementTree
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
+          <td><span class="summary-sig"><a name="test_addnext_cycle"></a><span class="summary-sig-name">test_addnext_cycle</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addnext_cycle">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="test_addprevious_cycle"></a><span class="summary-sig-name">test_addprevious_cycle</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addprevious_cycle">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="test_addnext_cycle_long"></a><span class="summary-sig-name">test_addnext_cycle_long</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addnext_cycle_long">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="test_addprevious_cycle_long"></a><span class="summary-sig-name">test_addprevious_cycle_long</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addprevious_cycle_long">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="test_addprevious_noops"></a><span class="summary-sig-name">test_addprevious_noops</span>(<span class="summary-sig-arg">self</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addprevious_noops">source&nbsp;code</a></span>
@@ -3848,6 +3912,38 @@ Tests only for etree, not ElementTree
       
     </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="test_proxy_collect_siblings"></a><span class="summary-sig-name">test_proxy_collect_siblings</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_proxy_collect_siblings">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="test_proxy_collect_siblings_text"></a><span class="summary-sig-name">test_proxy_collect_siblings_text</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_proxy_collect_siblings_text">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -4120,7 +4216,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b17cbf..dcfa5a7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8903950..a62e167 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c34033c..89a8253 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6e0175d..fc56805 100644 (file)
@@ -440,7 +440,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09e9fbd..26f65d4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b362086..5af6d32 100644 (file)
@@ -232,7 +232,7 @@ HTML parser test cases for etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0df8e2c..09bc2b3 100644 (file)
@@ -1613,7 +1613,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0dbfc1..2fcf405 100644 (file)
@@ -1116,7 +1116,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4139272..cba8c33 100644 (file)
@@ -223,7 +223,7 @@ Web IO test cases that need Python 2.5+ (wsgiref)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aeafb34..3d01e76 100644 (file)
@@ -461,7 +461,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 659325e..fe1f4be 100644 (file)
@@ -468,7 +468,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fb76128..6d76baf 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9eb256e..912f986 100644 (file)
@@ -613,7 +613,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 36994ba..1287e43 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 826df02..a448c9d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f4ba37..94e2158 100644 (file)
@@ -225,7 +225,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fbda407..6fe3e5a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b44ec7e..64e57d4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f1b94bf..df470f1 100644 (file)
@@ -238,7 +238,7 @@ IO test cases that apply to both etree and ElementTree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 23f7210..7c65c6b 100644 (file)
@@ -1088,7 +1088,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8bea9fc..e079859 100644 (file)
@@ -407,7 +407,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a7ca680..a2dec48 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69d7329..eec697d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41c138e..025f8ec 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to ISO-Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index daf82d2..b2580c6 100644 (file)
@@ -1612,7 +1612,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3eef741..716d914 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a419406..16d3a91 100644 (file)
@@ -224,7 +224,7 @@ namespace registry mechanism
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9f14591..3a35ed0 100644 (file)
@@ -589,7 +589,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 90a3758..fb74859 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5bfc380..d82ca7d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26b7a5b..c7622b7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2126033..a74442c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1c063ff..dd681b8 100644 (file)
@@ -541,7 +541,7 @@ Tests specific to the lxml.objectify API
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3128b2a..94a0873 100644 (file)
@@ -5646,7 +5646,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ecd5fa..95c3763 100644 (file)
@@ -3557,7 +3557,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c9ca611..dcf7b1b 100644 (file)
@@ -265,7 +265,7 @@ Tests specific to the Python based class lookup.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0d068ea..b942738 100644 (file)
@@ -871,7 +871,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a517ca..7103130 100644 (file)
@@ -858,7 +858,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 39be1a2..9d84c79 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to RelaxNG parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 02a1f58..6be1faf 100644 (file)
@@ -581,7 +581,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc535e6..7e1d985 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8db2111..c72bfcd 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to SAX I/O
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 085e1a2..54fb2fc 100644 (file)
@@ -653,7 +653,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b99a165..a160f87 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e98db5e..f8849b2 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dffaee4..99dd937 100644 (file)
@@ -352,7 +352,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0c0a4bd..8ad43db 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d66ed81..df13823 100644 (file)
@@ -232,7 +232,7 @@ Tests for thread usage in lxml.etree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b209d0e..1f65e29 100644 (file)
@@ -1112,7 +1112,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5cd4d50..cb9d0ab 100644 (file)
@@ -511,7 +511,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7c715f1..b5bbad7 100644 (file)
@@ -292,7 +292,7 @@ the document to support relative Paths when looking up external entities
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b106b9..7a63532 100644 (file)
@@ -292,7 +292,7 @@ the document to support relative Paths when looking up external entities
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 251b77c..cf9cef2 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b7ebabc..5c5c85d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8efbb09..3fdb8d9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed50f6a..2e6b394 100644 (file)
@@ -321,7 +321,7 @@ from the args and kwargs arguments, respectively.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ab09a68..2f6b94f 100644 (file)
@@ -531,7 +531,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1efe871..d1786de 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 68f800d..c77f291 100644 (file)
@@ -453,7 +453,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b74fbf6..adecd02 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 885ae9b..73a3dec 100644 (file)
@@ -230,7 +230,7 @@ Test cases related to XML Schema parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6a9f9d6..2426642 100644 (file)
@@ -1263,7 +1263,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:22 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a4bf175..a24cf7b 100644 (file)
@@ -529,7 +529,7 @@ BytesIO(&quot;&quot;&quot;\
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f57703e..06db452 100644 (file)
@@ -284,7 +284,7 @@ opaque context object.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fdf6b12..09b3d3f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bbf1ebe..170e2ea 100644 (file)
@@ -424,7 +424,7 @@ tTest, (None, 'floatTest'): floatTest, (None, 'booleanTest'): booleanT\
 est, (None, 'setTest'): setTest, (None, 'setTest2'): setTest2, (None, \
 'argsTest1'): argsTest1, (None, 'argsTest2'): argsTest2, (None, 'resul\
 tTypesTest'): resultTypesTest, (None, 'resultTypesTest2'): resultTypes\
-Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;function argsTest1 at 0x489<code class="variable-ellipsis">...</code></code>
+Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;function argsTest1 at 0x2b7<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -552,7 +552,7 @@ Test2,}
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6a5cca..e43e9fb 100644 (file)
@@ -1982,7 +1982,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:42 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c1fa18a..d65e474 100644 (file)
@@ -358,7 +358,7 @@ Tests for the ETXPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 654ca47..4a8de1f 100644 (file)
@@ -406,7 +406,7 @@ Tests for the XPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 98d22c1..1531690 100644 (file)
@@ -408,7 +408,7 @@ Tests for the EXSLT support in XPath (requires libxslt 1.1.25+)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index af2de6e..2c9a8e9 100644 (file)
@@ -1030,7 +1030,7 @@ XPath tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 76d777c..e03b661 100644 (file)
@@ -279,7 +279,7 @@ Test cases related to XSLT processing
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7547b92..2803e60 100644 (file)
@@ -3285,842 +3285,959 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-916', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-917', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
 lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-918', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">                          <tt id="link-919" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-919', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1359"></a><tt class="py-lineno">1359</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1362"></a><tt class="py-lineno">1362</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">                         <tt id="link-919" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-919', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-def"><a name="L1358"></a><tt class="py-lineno">1358</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-expanded"><a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-920', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">        <tt id="link-921" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-921', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-920', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt id="link-921" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-921', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-922', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-923" class="py-name"><a title="lxml.etree
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:myext()"/&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">            <tt id="link-923" class="py-name" targets="Method lxml.html.HtmlMixin.text_content()=lxml.html.HtmlMixin-class.html#text_content"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-923', 'text_content', 'link-923');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-924" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
+lxml.etree._ElementTree.xpath
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-924', 'xpath', 'link-924');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-925', 'text_content', 'link-923');">text_content</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt id="link-926" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-926', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-927" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-927', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-928', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt id="link-929" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-929', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-930', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-931" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-931', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-932', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">                         <tt id="link-933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-933', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;BxC&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-def"><a name="L1381"></a><tt class="py-lineno">1381</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-expanded"><a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-comment"># LP ticket 1354652</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Resolver</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">system_url</tt><tt class="py-op">,</tt> <tt class="py-param">public_id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt id="link-934" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-934', 'system_url', 'link-934');">system_url</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'extdoc.xml'</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-935" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-935', 'resolve_string', 'link-415');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt id="link-936" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-936', 'parser', 'link-416');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-937" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-937', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-938', 'XMLParser', 'link-418');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-939', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-940', 'resolvers', 'link-420');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-941', 'add', 'link-421');">add</a></tt><tt class="py-op">(</tt><tt id="link-942" class="py-name" targets="Class lxml.etree.Resolver=lxml.etree.Resolver-class.html"><a title="lxml.etree.Resolver" class="py-name" href="#" onclick="return doclink('link-942', 'Resolver', 'link-942');">Resolver</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-943', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-944" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-944', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-945" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-945', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-946', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'''\</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">    xmlns:mypre="testns"</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="mypre"&gt;</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-string">    &lt;B&gt;&lt;xsl:value-of select="mypre:myext()"/&gt;&lt;/B&gt;</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:apply-templates select="document('extdoc.xml')//b" /&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">,</tt> <tt id="link-947" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-947', 'parser', 'link-416');">parser</a></tt><tt class="py-op">=</tt><tt id="link-948" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-948', 'parser', 'link-416');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">            <tt id="link-949" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-949', 'text_content', 'link-923');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree._Element.xpath
+lxml.etree._ElementTree.xpath
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-950', 'xpath', 'link-924');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-951" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-951', 'text_content', 'link-923');">text_content</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">        <tt id="link-952" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-952', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-953" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-953', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-954', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt id="link-955" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-955', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-956', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">                         <tt id="link-957" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-957', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;B&gt;BxC&lt;/B&gt;&lt;B/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1420"></a><tt class="py-lineno">1420</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-958', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt id="link-959" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-959', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-960', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-961" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-923', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-924" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-961', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-962" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-924', 'Element', 'link-924');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-925" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-962', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-963" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-925', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-963', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-926', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-927', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-928', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-929" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-929', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-930', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">                          <tt id="link-931" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-931', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1387"></a><tt class="py-lineno">1387</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-964', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-965', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-966', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-967" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-967', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-968', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">                          <tt id="link-969" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-969', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1445"></a><tt class="py-lineno">1445</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-932', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt id="link-933" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-933', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-934" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-970', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt id="link-971" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-971', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-934', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt id="link-935" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-935', 'tags', 'link-935');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">                <tt id="link-936" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-936', 'tags', 'link-935');">tags</a></tt><tt class="py-op">.</tt><tt id="link-937" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-937', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-972', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt id="link-973" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-973', 'tags', 'link-973');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt id="link-974" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-974', 'tags', 'link-973');">tags</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-975', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-938', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-939', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-940" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-940', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-941" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-941', 'tags', 'link-935');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1411"></a><tt class="py-lineno">1411</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-942" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-976', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-977', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-978" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-978', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-979', 'tags', 'link-973');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-942', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt id="link-943" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-943', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-944" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-980', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-981', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-944', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">        <tt id="link-945" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-982', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt id="link-983" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-945', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">                <tt id="link-946" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-983', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">                <tt id="link-984" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-946', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-947', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-948" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-984', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-985" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-985', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-948', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-949" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-949', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-950', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-951" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-986', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-987', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-988" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-988', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-951', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1441"></a><tt class="py-lineno">1441</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-952" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-989', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1499"></a><tt class="py-lineno">1499</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-952', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt id="link-953" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-953', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-990', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt id="link-991" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-991', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-954', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt id="link-955" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-992', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-955', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt id="link-956" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-993', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">                <tt id="link-994" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-956', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-957" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-957', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-958', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-959" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-959', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-960" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-994', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-995', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-996', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-997" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-997', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-998" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-960', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-998', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1527"></a><tt class="py-lineno">1527</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-961', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt id="link-962" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-962', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-963" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-999', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-1000" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1000', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-963', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line"> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-964', 'extend', 'link-964');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-965', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-966" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-966', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-967" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-967', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">                          <tt id="link-968" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-968', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1491"></a><tt class="py-lineno">1491</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1001', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1002', 'extend', 'link-1002');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1003', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1004" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1004', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1005', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">                          <tt id="link-1006" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1006', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1549"></a><tt class="py-lineno">1549</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-969', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-970" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-970', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1007', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt id="link-1008" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1008', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1009" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-971', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-972" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-972', 'apply_templates', 'link-972');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-973" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-973', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-974" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-974', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1009', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1010', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1011" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1011', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1012', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-975', 'Element', 'link-924');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1013', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-976', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-977', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-978" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-978', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-979', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-980', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">                          <tt id="link-981" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-981', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1522"></a><tt class="py-lineno">1522</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1014', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1015', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1016', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1017" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1017', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1018', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                          <tt id="link-1019" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1019', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1580"></a><tt class="py-lineno">1580</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-982', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt id="link-983" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-983', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1020', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt id="link-1021" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1021', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-984', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-985" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-985', 'apply_templates', 'link-972');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-986" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-986', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-987', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line"> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-988', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-989', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-990', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">                          <tt id="link-991" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-991', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1550"></a><tt class="py-lineno">1550</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1022', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1023', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1024" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1024', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1025', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1026', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1027" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1027', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1028', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                          <tt id="link-1029" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1029', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1608"></a><tt class="py-lineno">1608</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-992', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-993', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-994" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1030', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt id="link-1031" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1031', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-994', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line"> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-995', 'apply_templates', 'link-972');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-996" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-996', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-997" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-997', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-998" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-998', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1032', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1033', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1034" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1034', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-1035', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1036" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1036', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-999', 'Element', 'link-924');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1000" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1037', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1000', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1001', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1002', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1003" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1003', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1004', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                          <tt id="link-1005" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1005', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1584"></a><tt class="py-lineno">1584</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1038', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1039', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1040" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1040', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1041" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1041', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1042', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">                          <tt id="link-1043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1043', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1642"></a><tt class="py-lineno">1642</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1006', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt id="link-1007" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1007', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1044', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt id="link-1045" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1045', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1008', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1009" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1009', 'apply_templates', 'link-972');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line"> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line"> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1010', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1011" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1011', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1012', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                          <tt id="link-1013" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1013', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1609"></a><tt class="py-lineno">1609</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1046', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1047" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1047', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1048', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1049" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1049', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1050', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">                          <tt id="link-1051" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1051', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1667"></a><tt class="py-lineno">1667</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1014', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt id="link-1015" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1015', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1052', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt id="link-1053" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1053', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1016', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1017" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1017', 'apply_templates', 'link-972');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1018', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1019" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1019', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1020" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1020', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1021', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">                          <tt id="link-1022" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1022', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1635"></a><tt class="py-lineno">1635</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1054', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1055', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line"> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1056', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1057" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1057', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1058" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1058', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1059', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">                          <tt id="link-1060" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1060', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1693"></a><tt class="py-lineno">1693</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1023', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt id="link-1024" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1024', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1061', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt id="link-1062" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1062', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1025', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1026" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1026', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1063', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1064" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1064', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1027', 'Element', 'link-924');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1028', 'process_children', 'link-1028');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1029" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1029', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1030', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1031" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1031', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1032', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">                          <tt id="link-1033" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1033', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1672"></a><tt class="py-lineno">1672</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1065', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1066', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1067', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1068" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1068', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1069" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1069', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1070', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">                          <tt id="link-1071" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1071', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1730"></a><tt class="py-lineno">1730</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1034', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">        <tt id="link-1035" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1035', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1036" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1072', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt id="link-1073" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1073', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1036', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line"> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1037', 'process_children', 'link-1028');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line"> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1038', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1039" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1039', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1040" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1040', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">                          <tt id="link-1041" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1041', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1696"></a><tt class="py-lineno">1696</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1074', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1075" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1075', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line"> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1076', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1077" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1077', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1078', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">                          <tt id="link-1079" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1079', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1754"></a><tt class="py-lineno">1754</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1042', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1043" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1043', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1080', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt id="link-1081" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1081', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1082" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1044', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1045', 'process_children', 'link-1028');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1046', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1047" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1047', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1718"></a><tt class="py-lineno">1718</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1082', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1083', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line"> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1084" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1084', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1085" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1085', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1776"></a><tt class="py-lineno">1776</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1048', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt id="link-1049" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1049', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1086', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt id="link-1087" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1087', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1088" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1050', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1051" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1051', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1088', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1089" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1089', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1090" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1052', 'Element', 'link-924');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1053" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1053', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1054', 'process_children', 'link-1028');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1055', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1056', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1057" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1057', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1058" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1058', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">                          <tt id="link-1059" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1059', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1746"></a><tt class="py-lineno">1746</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1060" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1090', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1091" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1091', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1092" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1092', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1093" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1093', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1094', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1095" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1095', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1096" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1096', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">                          <tt id="link-1097" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1097', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1804"></a><tt class="py-lineno">1804</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1098" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1060', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt id="link-1061" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1061', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1062" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1098', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt id="link-1099" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1099', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1100" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1062', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1063', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1064" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1064', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line"> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1770"></a><tt class="py-lineno">1770</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">    <tt id="link-1065" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
-lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1065', 'pytestmark', 'link-1065');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1066" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1066', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1775"></a><tt class="py-lineno">1775</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1100', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line"> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line"> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1101" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1101', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1102" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1102', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1828"></a><tt class="py-lineno">1828</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line"> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">    <tt id="link-1103" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
+lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1103', 'pytestmark', 'link-1103');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1104" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1104', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1833"></a><tt class="py-lineno">1833</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1067', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt id="link-1068" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1068', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1069" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1105', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt id="link-1106" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1106', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1107" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1069', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1070" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1070', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1071" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1071', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1072" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1072', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1073" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1073', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1794"></a><tt class="py-lineno">1794</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1107', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1108" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1108', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1109" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1109', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1110" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1110', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1111" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1111', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1852"></a><tt class="py-lineno">1852</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1074', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">        <tt id="link-1075" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1075', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1112', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt id="link-1113" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1113', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1076', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1077" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1077', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1078', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1079" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1079', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1080" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1080', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1813"></a><tt class="py-lineno">1813</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1114', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line"> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1115" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1115', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1116" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1116', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1117" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1117', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1118" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1118', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1871"></a><tt class="py-lineno">1871</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1119" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1081', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt id="link-1082" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1082', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1119', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <tt id="link-1120" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1120', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1121" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1083', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line"> </tt>
-<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1084" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1084', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1085" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1085', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1086" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1086', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1087" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1087', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line"> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L1833"></a><tt class="py-lineno">1833</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1088" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1088', 'ETreeXSLTTestCase', 'link-1088');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1089" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1089', 'ETreeEXSLTTestCase', 'link-1089');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1090" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1090', 'ETreeXSLTExtFuncTestCase', 'link-1090');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1091" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1091', 'ETreeXSLTExtElementTestCase', 'link-1091');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1092" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1092', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1093" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1093', 'Py3XSLTTestCase', 'link-1093');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1094" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1094', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1095" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1095', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line"> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1121', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1122" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1122', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1123" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1123', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1124" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1124', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1125" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1125', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line"> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L1891"></a><tt class="py-lineno">1891</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1126" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1126', 'ETreeXSLTTestCase', 'link-1126');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1127" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1127', 'ETreeEXSLTTestCase', 'link-1127');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1128" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1128', 'ETreeXSLTExtFuncTestCase', 'link-1128');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1129" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1129', 'ETreeXSLTExtElementTestCase', 'link-1129');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1130" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1130', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1131" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1131', 'Py3XSLTTestCase', 'link-1131');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1132" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1132', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1133" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1133', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line"> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -4158,7 +4275,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:21 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f5ee2eb..ad120ce 100644 (file)
@@ -502,7 +502,7 @@ EXSLT tests
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b3a54ab..d2158ed 100644 (file)
@@ -566,7 +566,7 @@ Tests for extension elements in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 91b4d4a..1b3bd2a 100644 (file)
@@ -166,6 +166,38 @@ Tests for XPath extension functions in XSLT.
       
     </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="test_xpath_on_context_node"></a><span class="summary-sig-name">test_xpath_on_context_node</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_xslt-pysrc.html#ETreeXSLTExtFuncTestCase.test_xpath_on_context_node">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="test_xpath_on_foreign_context_node"></a><span class="summary-sig-name">test_xpath_on_foreign_context_node</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_xslt-pysrc.html#ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
   <tr>
     <td colspan="2" class="summary">
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.common_imports.HelperTestCase-class.html">common_imports.HelperTestCase</a></code></b>:
@@ -374,7 +406,7 @@ Tests for XPath extension functions in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c9387c..368a6b7 100644 (file)
@@ -1142,7 +1142,7 @@ XSLT tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1a31739..0c62ca2 100644 (file)
@@ -420,7 +420,7 @@ s': {}}&gt;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f32e396..0a6b30f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 24e1a12..4f5a391 100644 (file)
@@ -112,7 +112,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:43 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c04d5ba..8390a76 100644 (file)
@@ -363,7 +363,7 @@ contains some hooks for decoding encoded and multipart messages.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec76949..ddaa434 100644 (file)
@@ -156,7 +156,7 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:39 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:18 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9fa5366..6165088 100644 (file)
@@ -1628,7 +1628,7 @@ arguments start and end are interpreted as in slice notation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ab2a20..18ad9e4 100644 (file)
@@ -657,9 +657,9 @@ hash(x)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x3d5c398&gt;,
- 'text': &lt;function _serialize_text at 0x3d5c410&gt;,
- 'xml': &lt;function _serialize_xml at 0x3d5c320&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x3d5c398&gt;<code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
+        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x2b7afd9d3410&gt;,
+ 'text': &lt;function _serialize_text at 0x2b7afd9d3488&gt;,
+ 'xml': &lt;function _serialize_xml at 0x2b7afd9d3398&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2b7afd9d3<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 </table>
@@ -743,9 +743,9 @@ hash(x)
   <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">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x3d5c398&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_text at 0x3d5c410&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_xml at 0x3d5c320&gt;<code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2b7afd9d3410&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_text at 0x2b7afd9d3488&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_xml at 0x2b7afd9d3398&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -783,7 +783,7 @@ hash(x)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:40 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:19 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 95995e6..d5f1786 100644 (file)
@@ -2999,7 +2999,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:44 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:23 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1ec33af..49eb5ca 100644 (file)
@@ -729,7 +729,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b0be1a9..a94e32a 100644 (file)
@@ -423,7 +423,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87cd893..1ea4aff 100644 (file)
@@ -192,7 +192,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 07a1bac..86f6857 100644 (file)
@@ -324,7 +324,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 20131d2..286ebda 100644 (file)
@@ -309,7 +309,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b54d5c9..ac0c86d 100644 (file)
@@ -475,7 +475,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f602277..ea04a7a 100644 (file)
@@ -263,7 +263,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 86a4231..0f075dd 100644 (file)
@@ -241,7 +241,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Apr 18 08:58:41 2014
+    Generated by Epydoc 3.0.1 on Thu Aug 28 16:41:20 2014
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7af783d..d249fcf 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="how-to-build-lxml-from-source">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to build lxml from source</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to build lxml from source</h1>
 
 <p>To build lxml from source, you need libxml2 and libxslt properly
 installed, <em>including the header files</em>.  These are likely shipped in
@@ -278,7 +278,7 @@ installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></t
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 8fe49b0..a879ec2 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="the-public-c-api-of-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The public C-API of lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The public C-API of lxml.etree</h1>
 
 <p>As of version 1.1, lxml.etree provides a public C-API.  This allows external
 C extensions to efficiently access public functions and classes of lxml,
@@ -94,7 +94,7 @@ includes may not be sufficient.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
similarity index 99%
rename from doc/html/changes-3.3.5.html
rename to doc/html/changes-3.3.6.html
index 95c01ed..cd68cec 100644 (file)
 <h1 class="title">lxml changelog</h1>
 
 <div class="section" id="id1">
-<h1>3.3.5 (2014-04-18)</h1>
+<h1>3.3.6 (2014-08-28)</h1>
 <div class="section" id="bugs-fixed">
 <h2>Bugs fixed</h2>
 <ul class="simple">
+<li>Prevent tree cycle creation when adding Elements as siblings.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
+extension functions.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id2">
+<h1>3.3.5 (2014-04-18)</h1>
+<div class="section" id="id3">
+<h2>Bugs fixed</h2>
+<ul class="simple">
 <li>HTML cleaning could fail to strip javascript links that mix control
 characters into the link scheme.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id2">
+<div class="section" id="id4">
 <h1>3.3.4 (2014-04-03)</h1>
 <div class="section" id="features-added">
 <h2>Features added</h2>
@@ -30,7 +42,7 @@ characters into the link scheme.</li>
 using libxml2 2.9 or later.</li>
 </ul>
 </div>
-<div class="section" id="id3">
+<div class="section" id="id5">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.fragment_fromstring()</tt> failed for bytes input in Py3.</li>
@@ -40,15 +52,15 @@ using libxml2 2.9 or later.</li>
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id4">
+<div class="section" id="id6">
 <h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id5">
+<div class="section" id="id7">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1287118">LP#1287118</a>: Crash when using Element subtypes with <tt class="docutils literal">__slots__</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id6">
+<div class="section" id="id8">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The internal classes <tt class="docutils literal">_LogEntry</tt> and <tt class="docutils literal">_Attrib</tt> can no longer be
@@ -56,9 +68,9 @@ subclassed from Python code.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id7">
+<div class="section" id="id9">
 <h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id8">
+<div class="section" id="id10">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The properties <tt class="docutils literal">resolvers</tt> and <tt class="docutils literal">version</tt>, as well as the methods
@@ -79,12 +91,12 @@ provide the same interface as that returned for Elements.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id9">
+<div class="section" id="id11">
 <h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id10">
+<div class="section" id="id12">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id11">
+<div class="section" id="id13">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1014290">LP#1014290</a>: HTML documents parsed with <tt class="docutils literal">parser.feed()</tt> failed to find
@@ -96,36 +108,36 @@ header file.</li>
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274118">LP#1274118</a>: iterparse() failed to parse BOM prefixed files.</li>
 </ul>
 </div>
-<div class="section" id="id12">
+<div class="section" id="id14">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id13">
+<div class="section" id="id15">
 <h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id14">
+<div class="section" id="id16">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id15">
+<div class="section" id="id17">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The heuristic that distinguishes file paths from URLs was tightened
 to produce less false negatives.</li>
 </ul>
 </div>
-<div class="section" id="id16">
+<div class="section" id="id18">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="beta5-2014-01-18">
 <h1>3.3.0beta5 (2014-01-18)</h1>
-<div class="section" id="id17">
+<div class="section" id="id19">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The PEP 393 unicode parsing support gained a fallback for wchar strings
 which might still be somewhat common on Windows systems.</li>
 </ul>
 </div>
-<div class="section" id="id18">
+<div class="section" id="id20">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Several error handling problems were fixed throughout the code base that
@@ -138,7 +150,7 @@ propagate exceptions (its return type is <tt class="docutils literal">void</tt>)
 parsing the string character by character.</li>
 </ul>
 </div>
-<div class="section" id="id19">
+<div class="section" id="id21">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Document cleanup code was simplified using the new GC features in
@@ -148,10 +160,10 @@ Cython 0.20.</li>
 </div>
 <div class="section" id="beta4-2014-01-12">
 <h1>3.3.0beta4 (2014-01-12)</h1>
-<div class="section" id="id20">
+<div class="section" id="id22">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id21">
+<div class="section" id="id23">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The (empty) value returned by the <tt class="docutils literal">attrib</tt> property of Entity and Comment
@@ -164,7 +176,7 @@ and keyword arguments could modify the mapping passed as <tt class="docutils lit
 the docinfo property) lost their attribute declarations.</li>
 </ul>
 </div>
-<div class="section" id="id22">
+<div class="section" id="id24">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
@@ -174,39 +186,39 @@ Python 3.4.</li>
 </div>
 <div class="section" id="beta3-2014-01-02">
 <h1>3.3.0beta3 (2014-01-02)</h1>
-<div class="section" id="id23">
+<div class="section" id="id25">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Unicode string parsing was optimised for Python 3.3 (PEP 393).</li>
 </ul>
 </div>
-<div class="section" id="id24">
+<div class="section" id="id26">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML parsing of Unicode strings could misdecode the input on some platforms.</li>
 <li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
 </ul>
 </div>
-<div class="section" id="id25">
+<div class="section" id="id27">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="beta2-2013-12-20">
 <h1>3.3.0beta2 (2013-12-20)</h1>
-<div class="section" id="id26">
+<div class="section" id="id28">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">iterparse()</tt> supports the <tt class="docutils literal">recover</tt> option.</li>
 </ul>
 </div>
-<div class="section" id="id27">
+<div class="section" id="id29">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in <tt class="docutils literal">iterparse()</tt> for HTML parsing.</li>
 <li>Crash in target parsing with attributes.</li>
 </ul>
 </div>
-<div class="section" id="id28">
+<div class="section" id="id30">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The safety check in the read-only tree implementation (e.g. used by
@@ -219,7 +231,7 @@ behaviour.</li>
 </div>
 <div class="section" id="beta1-2013-12-12">
 <h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id29">
+<div class="section" id="id31">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New option <tt class="docutils literal">handle_failures</tt> in <tt class="docutils literal">make_links_absolute()</tt> and
@@ -231,7 +243,7 @@ incremental parsing, as implemented for ElementTree in Python 3.4.</li>
 (<tt class="docutils literal">html=True</tt>).</li>
 </ul>
 </div>
-<div class="section" id="id30">
+<div class="section" id="id32">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1255132">LP#1255132</a>: crash when trying to run validation over non-Element (e.g.
@@ -253,7 +265,7 @@ The textarea used to be cleared before the new content was set,
 which removed the name attribute.</li>
 </ul>
 </div>
-<div class="section" id="id31">
+<div class="section" id="id33">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some basic API classes use freelists internally for faster
@@ -264,12 +276,12 @@ classes internally instead of being a parser itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id32">
+<div class="section" id="id34">
 <h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id33">
+<div class="section" id="id35">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id34">
+<div class="section" id="id36">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
@@ -278,16 +290,16 @@ classes internally instead of being a parser itself.</li>
 comment or PI).</li>
 </ul>
 </div>
-<div class="section" id="id36">
+<div class="section" id="id38">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id37">
+<div class="section" id="id39">
 <h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id38">
+<div class="section" id="id40">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id39">
+<div class="section" id="id41">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak when creating an XPath evaluator in a thread.</li>
@@ -298,32 +310,32 @@ to one of its own descendants.</li>
 <li>Compressed plain-text serialisation to file-like objects was broken.</li>
 </ul>
 </div>
-<div class="section" id="id42">
+<div class="section" id="id44">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id43">
+<div class="section" id="id45">
 <h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id44">
+<div class="section" id="id46">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fix support for Python 2.4 which was lost in 3.2.2.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id45">
+<div class="section" id="id47">
 <h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id46">
+<div class="section" id="id48">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id47">
+<div class="section" id="id49">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185701">LP#1185701</a>: spurious XMLSyntaxError after finishing iterparse().</li>
 <li>Crash in lxml.objectify during xsi annotation.</li>
 </ul>
 </div>
-<div class="section" id="id48">
+<div class="section" id="id50">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Return values of user provided element class lookup methods are now
@@ -332,9 +344,9 @@ API class mismatches.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id49">
+<div class="section" id="id51">
 <h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id50">
+<div class="section" id="id52">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
@@ -343,7 +355,7 @@ and <tt class="docutils literal">remove_blank_text</tt> that discard either all
 strings from the result list.</li>
 </ul>
 </div>
-<div class="section" id="id51">
+<div class="section" id="id53">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When moving Elements to another tree, the namespace cleanup mechanism
@@ -356,16 +368,16 @@ to a crash.</li>
 crashed.</li>
 </ul>
 </div>
-<div class="section" id="id52">
+<div class="section" id="id54">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id53">
+<div class="section" id="id55">
 <h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id54">
+<div class="section" id="id56">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id55">
+<div class="section" id="id57">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/690319">LP#690319</a>: Leading whitespace could change the behaviour of the string
@@ -384,16 +396,16 @@ of overwriting the current value.</li>
 allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
 </ul>
 </div>
-<div class="section" id="id56">
+<div class="section" id="id58">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id57">
+<div class="section" id="id59">
 <h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id58">
+<div class="section" id="id60">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id59">
+<div class="section" id="id61">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1136509">LP#1136509</a>: Passing attributes through the namespace-unaware API of
@@ -405,16 +417,16 @@ the result tree to a Unicode string.</li>
 by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id60">
+<div class="section" id="id62">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id61">
+<div class="section" id="id63">
 <h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id62">
+<div class="section" id="id64">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id63">
+<div class="section" id="id65">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1160386">LP#1160386</a>: Write access to <tt class="docutils literal">lxml.html.FormElement.fields</tt> raised
@@ -422,7 +434,7 @@ an AttributeError in Py3.</li>
 <li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
 </ul>
 </div>
-<div class="section" id="id64">
+<div class="section" id="id66">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
@@ -430,16 +442,16 @@ from the module dict.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id65">
+<div class="section" id="id67">
 <h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id66">
+<div class="section" id="id68">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/89">GH#89</a>: lxml.html.clean allows overriding the set of attributes that it
 considers 'safe'.  Patch by Francis Devereux.</li>
 </ul>
 </div>
-<div class="section" id="id67">
+<div class="section" id="id69">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1104370">LP#1104370</a>: <tt class="docutils literal">copy.copy(el.attrib)</tt> raised an exception.  It now returns
@@ -452,13 +464,13 @@ in for the current run.</li>
 without threading support.  Patch by Ulrich Seidl.</li>
 </ul>
 </div>
-<div class="section" id="id68">
+<div class="section" id="id70">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="beta1-2012-12-21">
 <h1>3.1beta1 (2012-12-21)</h1>
-<div class="section" id="id69">
+<div class="section" id="id71">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New build-time option <tt class="docutils literal"><span class="pre">--with-unicode-strings</span></tt> for Python 2 that
@@ -469,7 +481,7 @@ instead of byte strings for plain ASCII content.</li>
 tags with non-identifier names without having to resort to getattr().</li>
 </ul>
 </div>
-<div class="section" id="id70">
+<div class="section" id="id72">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When starting from a non-namespaced element in lxml.objectify, searching
@@ -481,7 +493,7 @@ the search to non-namespaced children.</li>
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1080792">LP#1080792</a>: Static build of libxml2 2.9.0 failed due to missing file.</li>
 </ul>
 </div>
-<div class="section" id="id71">
+<div class="section" id="id73">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
@@ -491,27 +503,27 @@ many children.  Patch by Anders Hammarquist.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id72">
+<div class="section" id="id74">
 <h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id73">
+<div class="section" id="id75">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id74">
+<div class="section" id="id76">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
 </ul>
 </div>
-<div class="section" id="id75">
+<div class="section" id="id77">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id76">
+<div class="section" id="id78">
 <h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id77">
+<div class="section" id="id79">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id78">
+<div class="section" id="id80">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065924">LP#1065924</a>: Element proxies could disappear during garbage collection
@@ -520,16 +532,16 @@ in PyPy without proper cleanup.</li>
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065139">LP#1065139</a>: static MacOS-X build failed in Py3.</li>
 </ul>
 </div>
-<div class="section" id="id79">
+<div class="section" id="id81">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id80">
+<div class="section" id="id82">
 <h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id81">
+<div class="section" id="id83">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id82">
+<div class="section" id="id84">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>End-of-file handling was incorrect in iterparse() when reading from
@@ -537,7 +549,7 @@ a low-level C file stream and failed in libxml2 2.9.0 due to its
 improved consistency checks.</li>
 </ul>
 </div>
-<div class="section" id="id83">
+<div class="section" id="id85">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The build no longer uses Cython by default unless the generated C files
@@ -550,21 +562,21 @@ run special setup.py commands that do not actually run a build), pass
 </div>
 <div class="section" id="beta1-2012-09-26">
 <h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id84">
+<div class="section" id="id86">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Python level access to (optional) libxml2 memory debugging features
 to simplify debugging of memory leaks etc.</li>
 </ul>
 </div>
-<div class="section" id="id85">
+<div class="section" id="id87">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fix a memory leak in XPath by switching to Cython 0.17.1.</li>
 <li>Some tests were adapted to work with PyPy.</li>
 </ul>
 </div>
-<div class="section" id="id86">
+<div class="section" id="id88">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
@@ -573,7 +585,7 @@ to simplify debugging of memory leaks etc.</li>
 </div>
 <div class="section" id="alpha2-2012-08-23">
 <h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id87">
+<div class="section" id="id89">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal">.iter()</tt> method of elements now accepts <tt class="docutils literal">tag</tt> arguments like
@@ -592,20 +604,20 @@ and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutil
 to top-level during exclusive serialisation.</li>
 </ul>
 </div>
-<div class="section" id="id88">
+<div class="section" id="id90">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
 failed to read the entire string.</li>
 </ul>
 </div>
-<div class="section" id="id89">
+<div class="section" id="id91">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="alpha1-2012-07-31">
 <h1>3.0alpha1 (2012-07-31)</h1>
-<div class="section" id="id90">
+<div class="section" id="id92">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Initial support for building in PyPy (through cpyext).</li>
@@ -621,7 +633,7 @@ argument supports passing a set of tags.  Tree nodes will be
 returned by the iterators if they match any of the tags.</li>
 </ul>
 </div>
-<div class="section" id="id91">
+<div class="section" id="id93">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods in <tt class="docutils literal">lxml.objectify</tt> no longer use XPath
@@ -648,7 +660,7 @@ constructor would fail with an exception, stating that the text
 cannot be modified.</li>
 </ul>
 </div>
-<div class="section" id="id92">
+<div class="section" id="id94">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code base was overhauled to properly use 'const' where the API
@@ -697,44 +709,44 @@ _XSLTResultTree, _XSLTProcessingInstruction</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id93">
+<div class="section" id="id95">
 <h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id94">
+<div class="section" id="id96">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id95">
+<div class="section" id="id97">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
 failed to read the entire string.</li>
 </ul>
 </div>
-<div class="section" id="id96">
+<div class="section" id="id98">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id97">
+<div class="section" id="id99">
 <h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id98">
+<div class="section" id="id100">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id99">
+<div class="section" id="id101">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when merging text nodes in <tt class="docutils literal">element.remove()</tt>.</li>
 <li>Crash in sax/target parser when reporting empty doctype.</li>
 </ul>
 </div>
-<div class="section" id="id100">
+<div class="section" id="id102">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id101">
+<div class="section" id="id103">
 <h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id102">
+<div class="section" id="id104">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id103">
+<div class="section" id="id105">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when building an nsmap (Element property) with empty
@@ -744,20 +756,20 @@ during threaded XSLT processing.</li>
 <li>XSLT stylesheet compilation could ignore compilation errors.</li>
 </ul>
 </div>
-<div class="section" id="id104">
+<div class="section" id="id106">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id105">
+<div class="section" id="id107">
 <h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id106">
+<div class="section" id="id108">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.tostring()</tt> gained new serialisation options
 <tt class="docutils literal">with_tail</tt> and <tt class="docutils literal">doctype</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id107">
+<div class="section" id="id109">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
@@ -771,13 +783,13 @@ Patch by Simon Sapin.</li>
 'img' tags without 'src' attribute.</li>
 </ul>
 </div>
-<div class="section" id="id108">
+<div class="section" id="id110">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id109">
+<div class="section" id="id111">
 <h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id110">
+<div class="section" id="id112">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
@@ -789,7 +801,7 @@ copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise
 of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
 </ul>
 </div>
-<div class="section" id="id111">
+<div class="section" id="id113">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
@@ -804,13 +816,13 @@ a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the sa
 &quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
 </ul>
 </div>
-<div class="section" id="id112">
+<div class="section" id="id114">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id113">
+<div class="section" id="id115">
 <h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id114">
+<div class="section" id="id116">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New option <tt class="docutils literal">kill_tags</tt> in <tt class="docutils literal">lxml.html.clean</tt> to remove specific
@@ -828,7 +840,7 @@ closed after reading or not.  By default, the file will be closed,
 as the user is not expected to keep a reference to it.</li>
 </ul>
 </div>
-<div class="section" id="id115">
+<div class="section" id="id117">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML cleaning didn't remove 'data:' links.</li>
@@ -856,7 +868,7 @@ collected form values.</li>
 field properly selects them and unselects them.</li>
 </ul>
 </div>
-<div class="section" id="id116">
+<div class="section" id="id118">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Static builds can specify the download directory with the
@@ -864,16 +876,16 @@ field properly selects them and unselects them.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id117">
+<div class="section" id="id119">
 <h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id118">
+<div class="section" id="id120">
 <h2>Features added</h2>
 <ul class="simple">
 <li>When looking for children, <tt class="docutils literal">lxml.objectify</tt> takes '{}tag' as
 meaning an empty namespace, as opposed to the parent namespace.</li>
 </ul>
 </div>
-<div class="section" id="id119">
+<div class="section" id="id121">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When finished reading from a file-like object, the parser
@@ -886,7 +898,7 @@ in libxml2 2.7.8).</li>
 <li><tt class="docutils literal">marque</tt> tag in HTML cleanup code is correctly named <tt class="docutils literal">marquee</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id120">
+<div class="section" id="id122">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some public functions in the Cython-level C-API have more explicit
@@ -896,10 +908,10 @@ return types.</li>
 </div>
 <div class="section" id="beta1-2010-09-06">
 <h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id121">
+<div class="section" id="id123">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id122">
+<div class="section" id="id124">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -911,23 +923,23 @@ documents that had attributes on replaced XInclude nodes.</li>
 use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
 </ul>
 </div>
-<div class="section" id="id123">
+<div class="section" id="id125">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="alpha2-2010-07-24">
 <h1>2.3alpha2 (2010-07-24)</h1>
-<div class="section" id="id124">
+<div class="section" id="id126">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id125">
+<div class="section" id="id127">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XSLT when generating text-only result documents with a
 stylesheet created in a different thread.</li>
 </ul>
 </div>
-<div class="section" id="id126">
+<div class="section" id="id128">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
@@ -937,7 +949,7 @@ stylesheet created in a different thread.</li>
 </div>
 <div class="section" id="alpha1-2010-06-19">
 <h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id127">
+<div class="section" id="id129">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Keyword argument <tt class="docutils literal">namespaces</tt> in <tt class="docutils literal">lxml.cssselect.CSSSelector()</tt>
@@ -988,7 +1000,7 @@ the document on submit.</li>
 (compatible with ElementTree).</li>
 </ul>
 </div>
-<div class="section" id="id128">
+<div class="section" id="id130">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>API is hardened against invalid proxy instances to prevent crashes
@@ -1022,7 +1034,7 @@ parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()
 called after parsing, regardless of the outcome.</li>
 </ul>
 </div>
-<div class="section" id="id129">
+<div class="section" id="id131">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.1.2 and later.</li>
@@ -1035,9 +1047,9 @@ collector to clean up.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id130">
+<div class="section" id="id132">
 <h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id131">
+<div class="section" id="id133">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -1046,9 +1058,9 @@ documents that had attributes on replaced XInclude nodes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id132">
+<div class="section" id="id134">
 <h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id133">
+<div class="section" id="id135">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XSLT when generating text-only result documents with a
@@ -1056,25 +1068,25 @@ stylesheet created in a different thread.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id134">
+<div class="section" id="id136">
 <h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id135">
+<div class="section" id="id137">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed several Python 3 regressions by building with Cython 0.11.3.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id136">
+<div class="section" id="id138">
 <h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id137">
+<div class="section" id="id139">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for running XSLT extension elements on the input root node
 (e.g. in a template matching on &quot;/&quot;).</li>
 </ul>
 </div>
-<div class="section" id="id138">
+<div class="section" id="id140">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XPath evaluation when reading smart strings from a document
@@ -1093,21 +1105,21 @@ an element.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id139">
+<div class="section" id="id141">
 <h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id140">
+<div class="section" id="id142">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Static build of libxml2/libxslt was broken.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id141">
+<div class="section" id="id143">
 <h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id142">
+<div class="section" id="id144">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id143">
+<div class="section" id="id145">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
@@ -1140,13 +1152,13 @@ namespaces when annotation is disabled.</li>
 <li>Diverting the error logging to Python's logging system was broken.</li>
 </ul>
 </div>
-<div class="section" id="id144">
+<div class="section" id="id146">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id145">
+<div class="section" id="id147">
 <h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id146">
+<div class="section" id="id148">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New helper functions <tt class="docutils literal">strip_attributes()</tt>, <tt class="docutils literal">strip_elements()</tt>,
@@ -1154,7 +1166,7 @@ namespaces when annotation is disabled.</li>
 from a subtree.</li>
 </ul>
 </div>
-<div class="section" id="id147">
+<div class="section" id="id149">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Namespace cleanup on subtree insertions could result in missing
@@ -1168,13 +1180,13 @@ BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
 behaviour.</li>
 </ul>
 </div>
-<div class="section" id="id148">
+<div class="section" id="id150">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id149">
+<div class="section" id="id151">
 <h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id150">
+<div class="section" id="id152">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Injecting default attributes into a document during XML Schema
@@ -1183,7 +1195,7 @@ validation (also at parse time).</li>
 restrictions imposed by libxml2 2.7.</li>
 </ul>
 </div>
-<div class="section" id="id151">
+<div class="section" id="id153">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The script for statically building libxml2 and libxslt didn't work
@@ -1192,13 +1204,13 @@ in Py3.</li>
 for parsing (which could lead to a crash before release 2.6.24).</li>
 </ul>
 </div>
-<div class="section" id="id152">
+<div class="section" id="id154">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id153">
+<div class="section" id="id155">
 <h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id154">
+<div class="section" id="id156">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
@@ -1206,7 +1218,7 @@ for parsing (which could lead to a crash before release 2.6.24).</li>
 on serialisation.</li>
 </ul>
 </div>
-<div class="section" id="id155">
+<div class="section" id="id157">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing an XML Schema with external imports from a
@@ -1216,7 +1228,7 @@ filename.</li>
 </div>
 <div class="section" id="beta4-2009-02-27">
 <h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id156">
+<div class="section" id="id158">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support strings and instantiable Element classes as child arguments
@@ -1225,7 +1237,7 @@ to the constructor of custom Element classes.</li>
 objects.</li>
 </ul>
 </div>
-<div class="section" id="id157">
+<div class="section" id="id159">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Deep-copying an ElementTree copied neither its sibling PIs and
@@ -1240,7 +1252,7 @@ to a problem in Cython, not lxml itself.</li>
 was evaluated incorrectly.</li>
 </ul>
 </div>
-<div class="section" id="id158">
+<div class="section" id="id160">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.0.1.</li>
@@ -1251,14 +1263,14 @@ for Elements without text content.</li>
 </div>
 <div class="section" id="beta3-2009-02-17">
 <h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id159">
+<div class="section" id="id161">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">XSLT.strparam()</tt> class method to wrap quoted string parameters
 that require escaping.</li>
 </ul>
 </div>
-<div class="section" id="id160">
+<div class="section" id="id162">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in XPath evaluators.</li>
@@ -1270,7 +1282,7 @@ string failed.</li>
 <li>Minor fixes for Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id161">
+<div class="section" id="id163">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The global error log (which is copied into the exception log) is now
@@ -1281,7 +1293,7 @@ local to a thread, which fixes some race conditions.</li>
 </div>
 <div class="section" id="beta2-2009-01-25">
 <h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id162">
+<div class="section" id="id164">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -1293,9 +1305,9 @@ problem in Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id163">
+<div class="section" id="id165">
 <h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id164">
+<div class="section" id="id166">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -1306,39 +1318,39 @@ problem in Cython, not lxml itself.</li>
 </div>
 <div class="section" id="beta1-2008-12-12">
 <h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id165">
+<div class="section" id="id167">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Allow <tt class="docutils literal">lxml.html.diff.htmldiff</tt> to accept Element objects, not
 just HTML strings.</li>
 </ul>
 </div>
-<div class="section" id="id166">
+<div class="section" id="id168">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when using an XPath evaluator in multiple threads.</li>
 <li>Fixed missing whitespace before <tt class="docutils literal"><span class="pre">Link:...</span></tt> in <tt class="docutils literal">lxml.html.diff</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id167">
+<div class="section" id="id169">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Export <tt class="docutils literal">lxml.html.parse</tt>.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id168">
+<div class="section" id="id170">
 <h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id169">
+<div class="section" id="id171">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when using an XPath evaluator in multiple threads.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id170">
+<div class="section" id="id172">
 <h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id171">
+<div class="section" id="id173">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when using an XPath evaluator in multiple threads.</li>
@@ -1347,7 +1359,7 @@ just HTML strings.</li>
 </div>
 <div class="section" id="alpha1-2008-11-23">
 <h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id172">
+<div class="section" id="id174">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for XSLT result tree fragments in XPath/XSLT extension
@@ -1357,7 +1369,7 @@ functions.</li>
 <li>Instantiating a custom Element classes creates a new Element.</li>
 </ul>
 </div>
-<div class="section" id="id173">
+<div class="section" id="id175">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>XSLT didn't inherit the parse options of the input document.</li>
@@ -1368,16 +1380,16 @@ that end in a parenthesis, will be linked in their entirety (typical
 with Wikipedia links).</li>
 </ul>
 </div>
-<div class="section" id="id174">
+<div class="section" id="id176">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id175">
+<div class="section" id="id177">
 <h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id176">
+<div class="section" id="id178">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id177">
+<div class="section" id="id179">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -1396,13 +1408,13 @@ ElementTrees.</li>
 <li>Overriding the parser encoding didn't work for many encodings.</li>
 </ul>
 </div>
-<div class="section" id="id178">
+<div class="section" id="id180">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id179">
+<div class="section" id="id181">
 <h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id180">
+<div class="section" id="id182">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -1411,9 +1423,9 @@ Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id181">
+<div class="section" id="id183">
 <h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id182">
+<div class="section" id="id184">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.etree now tries to find the absolute path name of files when
@@ -1422,7 +1434,7 @@ resolving relative URLs, as lixbml2 can prepend them with the path
 of the source document.</li>
 </ul>
 </div>
-<div class="section" id="id183">
+<div class="section" id="id185">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -1430,13 +1442,13 @@ of the source document.</li>
 exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
 </ul>
 </div>
-<div class="section" id="id184">
+<div class="section" id="id186">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id185">
+<div class="section" id="id187">
 <h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id186">
+<div class="section" id="id188">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -1445,12 +1457,12 @@ exception instead of calling <tt class="docutils literal">.close()</tt> on the t
 </ul>
 </div>
 </div>
-<div class="section" id="id187">
+<div class="section" id="id189">
 <h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id188">
+<div class="section" id="id190">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id189">
+<div class="section" id="id191">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -1459,20 +1471,20 @@ another.</li>
 Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id190">
+<div class="section" id="id192">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id191">
+<div class="section" id="id193">
 <h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id192">
+<div class="section" id="id194">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
 with whitespace in URL attributes.</li>
 </ul>
 </div>
-<div class="section" id="id193">
+<div class="section" id="id195">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -1481,13 +1493,13 @@ another.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id194">
+<div class="section" id="id196">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id195">
+<div class="section" id="id197">
 <h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id196">
+<div class="section" id="id198">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
@@ -1496,7 +1508,7 @@ keyword option).</li>
 with whitespace in URL attributes.</li>
 </ul>
 </div>
-<div class="section" id="id197">
+<div class="section" id="id199">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Custom resolvers were not used for XMLSchema includes/imports and
@@ -1505,7 +1517,7 @@ XInclude processing.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id198">
+<div class="section" id="id200">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
@@ -1514,15 +1526,15 @@ with parameters.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id199">
+<div class="section" id="id201">
 <h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id200">
+<div class="section" id="id202">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
 </ul>
 </div>
-<div class="section" id="id201">
+<div class="section" id="id203">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Descending dot-separated classes in CSS selectors were not resolved
@@ -1533,7 +1545,7 @@ correctly.</li>
 the super class is not called from Python subclasses.</li>
 </ul>
 </div>
-<div class="section" id="id202">
+<div class="section" id="id204">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -1543,7 +1555,7 @@ serialisation.</li>
 </div>
 <div class="section" id="beta3-2008-06-19">
 <h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id203">
+<div class="section" id="id205">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
@@ -1569,7 +1581,7 @@ lxml.html (experimental).</li>
 (experimental).</li>
 </ul>
 </div>
-<div class="section" id="id204">
+<div class="section" id="id206">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
@@ -1584,7 +1596,7 @@ platform.</li>
 <li>Rare crash when serialising to a file object with certain encodings.</li>
 </ul>
 </div>
-<div class="section" id="id205">
+<div class="section" id="id207">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -1597,12 +1609,12 @@ lxml.objectify.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id206">
+<div class="section" id="id208">
 <h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id207">
+<div class="section" id="id209">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id208">
+<div class="section" id="id210">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find(&quot;tag[child]&quot;)</span></tt>.</li>
@@ -1613,7 +1625,7 @@ document is deleted while the subtree is still in use.</li>
 <li>Rare crash when serialising to a file object with certain encodings.</li>
 </ul>
 </div>
-<div class="section" id="id209">
+<div class="section" id="id211">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml should now build without problems on MacOS-X.</li>
@@ -1622,7 +1634,7 @@ document is deleted while the subtree is still in use.</li>
 </div>
 <div class="section" id="beta2-2008-05-02">
 <h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id210">
+<div class="section" id="id212">
 <h2>Features added</h2>
 <ul class="simple">
 <li>All parse functions in lxml.html take a <tt class="docutils literal">parser</tt> keyword argument.</li>
@@ -1631,7 +1643,7 @@ attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parser
 pre-configured for the lxml.html package.</li>
 </ul>
 </div>
-<div class="section" id="id211">
+<div class="section" id="id213">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Moving a subtree from a document created in one thread into a
@@ -1642,7 +1654,7 @@ redundantly defined namespace URIs.  This prevented the definition
 of more than one prefix for a namespace on the same Element.</li>
 </ul>
 </div>
-<div class="section" id="id212">
+<div class="section" id="id214">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>If the default namespace is redundantly defined with a prefix on the
@@ -1654,12 +1666,12 @@ namespace (i.e. they would end up in the wrong namespace).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id213">
+<div class="section" id="id215">
 <h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id214">
+<div class="section" id="id216">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id215">
+<div class="section" id="id217">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -1668,13 +1680,13 @@ let some XSLT errors pass silently.</li>
 <li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
 </ul>
 </div>
-<div class="section" id="id216">
+<div class="section" id="id218">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="beta1-2008-04-15">
 <h1>2.1beta1 (2008-04-15)</h1>
-<div class="section" id="id217">
+<div class="section" id="id219">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
@@ -1684,7 +1696,7 @@ sections by their text content.</li>
 <li><tt class="docutils literal">CDATA()</tt> factory to wrap string content as CDATA section.</li>
 </ul>
 </div>
-<div class="section" id="id218">
+<div class="section" id="id220">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -1694,7 +1706,7 @@ let some XSLT errors pass silently.</li>
 <li>lxml.etree accepted non well-formed namespace prefix names.</li>
 </ul>
 </div>
-<div class="section" id="id219">
+<div class="section" id="id221">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
@@ -1708,12 +1720,12 @@ context.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id220">
+<div class="section" id="id222">
 <h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id221">
+<div class="section" id="id223">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id222">
+<div class="section" id="id224">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Hanging thread in conjunction with GTK threading.</li>
@@ -1722,13 +1734,13 @@ context.</li>
 <li><tt class="docutils literal"><span class="pre">ElementTree.find*()</span></tt> didn't accept QName objects.</li>
 </ul>
 </div>
-<div class="section" id="id223">
+<div class="section" id="id225">
 <h2>Other changes</h2>
 </div>
 </div>
 <div class="section" id="alpha1-2008-03-27">
 <h1>2.1alpha1 (2008-03-27)</h1>
-<div class="section" id="id224">
+<div class="section" id="id226">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
@@ -1742,14 +1754,14 @@ an Element.</li>
 <li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
 </ul>
 </div>
-<div class="section" id="id225">
+<div class="section" id="id227">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Default encoding for plain text serialisation was different from
 that of XML serialisation (UTF-8 instead of ASCII).</li>
 </ul>
 </div>
-<div class="section" id="id226">
+<div class="section" id="id228">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Minor API speed-ups.</li>
@@ -1793,9 +1805,9 @@ instead.</p>
 </ul>
 </div>
 </div>
-<div class="section" id="id227">
+<div class="section" id="id229">
 <h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id228">
+<div class="section" id="id230">
 <h2>Features added</h2>
 <ul class="simple">
 <li>soupparser.parse() allows passing keyword arguments on to
@@ -1803,7 +1815,7 @@ BeautifulSoup.</li>
 <li><tt class="docutils literal">fromstring()</tt> method in <tt class="docutils literal">lxml.html.soupparser</tt>.</li>
 </ul>
 </div>
-<div class="section" id="id229">
+<div class="section" id="id231">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
@@ -1816,7 +1828,7 @@ which made them turn up in text content.</li>
 correctly serialise the value to a string.</li>
 </ul>
 </div>
-<div class="section" id="id230">
+<div class="section" id="id232">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
@@ -1832,16 +1844,16 @@ option.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id231">
+<div class="section" id="id233">
 <h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id232">
+<div class="section" id="id234">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support passing <tt class="docutils literal">base_url</tt> to file parser functions to override
 the filename of the file(-like) object.</li>
 </ul>
 </div>
-<div class="section" id="id233">
+<div class="section" id="id235">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The prefix for objectify's pytype namespace was missing from the set
@@ -1851,7 +1863,7 @@ of default prefixes.</li>
 <li>Slice deletion bug fixed in objectify.</li>
 </ul>
 </div>
-<div class="section" id="id234">
+<div class="section" id="id236">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
@@ -1862,9 +1874,9 @@ of default prefixes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id235">
+<div class="section" id="id237">
 <h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id236">
+<div class="section" id="id238">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
@@ -1872,7 +1884,7 @@ of default prefixes.</li>
 methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
 </ul>
 </div>
-<div class="section" id="id237">
+<div class="section" id="id239">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
@@ -1884,7 +1896,7 @@ ignored.</li>
 elements at the wrong position.</li>
 </ul>
 </div>
-<div class="section" id="id238">
+<div class="section" id="id240">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The generated API documentation was cleaned up and disburdened from
@@ -1899,9 +1911,9 @@ compiler options.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id239">
+<div class="section" id="id241">
 <h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id240">
+<div class="section" id="id242">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Passing the <tt class="docutils literal">unicode</tt> type as <tt class="docutils literal">encoding</tt> to <tt class="docutils literal">tostring()</tt> will
@@ -2006,7 +2018,7 @@ instead of a string</li>
 <li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
 </ul>
 </div>
-<div class="section" id="id241">
+<div class="section" id="id243">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
@@ -2043,7 +2055,7 @@ evaluators now reports the first error that occurred instead of the last</li>
 <li>Thread safety in XPath evaluators</li>
 </ul>
 </div>
-<div class="section" id="id242">
+<div class="section" id="id244">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Exceptions carry only the part of the error log that is related to
@@ -2101,16 +2113,16 @@ generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id243">
+<div class="section" id="id245">
 <h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id244">
+<div class="section" id="id246">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Backported decref crash fix from 2.0</li>
 <li>Well hidden free-while-in-use crash bug in ObjectPath</li>
 </ul>
 </div>
-<div class="section" id="id245">
+<div class="section" id="id247">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The test suites now run <tt class="docutils literal">gc.collect()</tt> in the <tt class="docutils literal">tearDown()</tt>
@@ -2120,12 +2132,12 @@ problems that would otherwise appear in later tests.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id246">
+<div class="section" id="id248">
 <h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id247">
+<div class="section" id="id249">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id248">
+<div class="section" id="id250">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.etree could crash when adding more than 10000 namespaces to a
@@ -2135,9 +2147,9 @@ than the root node of a tree</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id249">
+<div class="section" id="id251">
 <h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id250">
+<div class="section" id="id252">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal">ElementMaker</tt> in <tt class="docutils literal">lxml.builder</tt> now accepts the keyword arguments
@@ -2151,13 +2163,13 @@ part of the document, as well as comments and PIs that are siblings of the
 root node.</li>
 </ul>
 </div>
-<div class="section" id="id251">
+<div class="section" id="id253">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parsing with the <tt class="docutils literal">no_network</tt> option could fail</li>
 </ul>
 </div>
-<div class="section" id="id252">
+<div class="section" id="id254">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml now raises a TagNameWarning about tag names containing ':' instead of
@@ -2173,9 +2185,9 @@ ElementTree serialisation includes them).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id253">
+<div class="section" id="id255">
 <h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id254">
+<div class="section" id="id256">
 <h2>Features added</h2>
 <ul class="simple">
 <li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
@@ -2186,7 +2198,7 @@ the parser you pass.</li>
 <li>Support <tt class="docutils literal">base_url</tt> keyword argument in <tt class="docutils literal">HTML()</tt> and <tt class="docutils literal">XML()</tt></li>
 </ul>
 </div>
-<div class="section" id="id255">
+<div class="section" id="id257">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parsing from Python Unicode strings failed on some platforms</li>
@@ -2196,21 +2208,21 @@ the parser you pass.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id256">
+<div class="section" id="id258">
 <h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id257">
+<div class="section" id="id259">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id258">
+<div class="section" id="id260">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>&quot;deallocating None&quot; crash bug</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id259">
+<div class="section" id="id261">
 <h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id260">
+<div class="section" id="id262">
 <h2>Features added</h2>
 <ul class="simple">
 <li>objectify.DataElement now supports setting values from existing data
@@ -2218,7 +2230,7 @@ elements (not just plain Python types) and reuses defined namespaces etc.</li>
 <li>E-factory support for lxml.objectify (<tt class="docutils literal">objectify.E</tt>)</li>
 </ul>
 </div>
-<div class="section" id="id261">
+<div class="section" id="id263">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Better way to prevent crashes in Element proxy cleanup code</li>
@@ -2228,9 +2240,9 @@ elements (not just plain Python types) and reuses defined namespaces etc.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id262">
+<div class="section" id="id264">
 <h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id263">
+<div class="section" id="id265">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
@@ -2259,7 +2271,7 @@ keys/values/items for a libxml2 node</li>
 a better handling of namespaces when moving elements between documents.</li>
 </ul>
 </div>
-<div class="section" id="id264">
+<div class="section" id="id266">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Removing Elements from a tree could make them loose their namespace
@@ -2283,16 +2295,16 @@ PIs are copied.</li>
 documents</li>
 </ul>
 </div>
-<div class="section" id="id265">
+<div class="section" id="id267">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>major restructuring in the documentation</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id266">
+<div class="section" id="id268">
 <h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id267">
+<div class="section" id="id269">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Build fixes for MS compiler</li>
@@ -2303,9 +2315,9 @@ to access</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id268">
+<div class="section" id="id270">
 <h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id269">
+<div class="section" id="id271">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Rich comparison of QName objects</li>
@@ -2321,7 +2333,7 @@ possible to pass an --rpath directly to distutils; previously this was being
 shadowed.</li>
 </ul>
 </div>
-<div class="section" id="id270">
+<div class="section" id="id272">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Element instantiation now uses locks to prevent race conditions with threads</li>
@@ -2331,7 +2343,7 @@ support in these environments</li>
 <li>Element.find*() did not accept QName objects as path</li>
 </ul>
 </div>
-<div class="section" id="id271">
+<div class="section" id="id273">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>code cleanup: redundant _NodeBase super class merged into _Element class
@@ -2340,9 +2352,9 @@ the compatibiliy of the public C-API</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id272">
+<div class="section" id="id274">
 <h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id273">
+<div class="section" id="id275">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Data elements in objectify support repr(), which is now used by dump()</li>
@@ -2353,7 +2365,7 @@ tail, attributes and namespaces</li>
 <li>Simplified support for handling XSLT processing instructions</li>
 </ul>
 </div>
-<div class="section" id="id274">
+<div class="section" id="id276">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parser resources were not freed before the next parser run</li>
@@ -2369,9 +2381,9 @@ closed/freed</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id275">
+<div class="section" id="id277">
 <h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id276">
+<div class="section" id="id278">
 <h2>Features added</h2>
 <ul class="simple">
 <li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
@@ -2379,7 +2391,7 @@ closed/freed</li>
 <li>Support custom elements for tree nodes in lxml.objectify</li>
 </ul>
 </div>
-<div class="section" id="id277">
+<div class="section" id="id279">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
@@ -2394,9 +2406,9 @@ elements)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id278">
+<div class="section" id="id280">
 <h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id279">
+<div class="section" id="id281">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
@@ -2449,7 +2461,7 @@ generated elements</li>
 element</li>
 </ul>
 </div>
-<div class="section" id="id280">
+<div class="section" id="id282">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>filenames with local 8-bit encoding were not supported</li>
@@ -2473,30 +2485,30 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id281">
+<div class="section" id="id283">
 <h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id282">
+<div class="section" id="id284">
 <h2>Features added</h2>
 <ul class="simple">
 <li>List-like <tt class="docutils literal">Element.extend()</tt> method</li>
 </ul>
 </div>
-<div class="section" id="id283">
+<div class="section" id="id285">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in tail handling in <tt class="docutils literal">Element.replace()</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id284">
+<div class="section" id="id286">
 <h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id285">
+<div class="section" id="id287">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Element.replace(old, new) method to replace a subelement by another one</li>
 </ul>
 </div>
-<div class="section" id="id286">
+<div class="section" id="id288">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when mixing elements from XSLT results into other trees</li>
@@ -2506,16 +2518,16 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id287">
+<div class="section" id="id289">
 <h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id288">
+<div class="section" id="id290">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for setting a custom default Element class as opposed to namespace
 specific classes (which still override the default class)</li>
 </ul>
 </div>
-<div class="section" id="id289">
+<div class="section" id="id291">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Rare exceptions in Python list functions were not handled</li>
@@ -2527,15 +2539,15 @@ cases</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id290">
+<div class="section" id="id292">
 <h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id291">
+<div class="section" id="id293">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Repeated calls to Element.attrib now efficiently return the same instance</li>
 </ul>
 </div>
-<div class="section" id="id292">
+<div class="section" id="id294">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Document deallocation could crash in certain garbage collection scenarios</li>
@@ -2551,9 +2563,9 @@ stylesheet and crash on repeated calls</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id293">
+<div class="section" id="id295">
 <h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id294">
+<div class="section" id="id296">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Element.getiterator() and the findall() methods support finding arbitrary
@@ -2600,7 +2612,7 @@ enabled by default, can be switched off with 'regexp=False' keyword argument</li
 implementation of libxml2 (as opposed to ET compatible XMLID)</li>
 </ul>
 </div>
-<div class="section" id="id295">
+<div class="section" id="id297">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in Element.__setitem__</li>
@@ -2642,9 +2654,9 @@ ElementTree root node as reference point</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id296">
+<div class="section" id="id298">
 <h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id297">
+<div class="section" id="id299">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Speedup for Element.makeelement(): the new element reuses the original
@@ -2654,7 +2666,7 @@ libxml2 document instead of creating a new empty one</li>
 <li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
 </ul>
 </div>
-<div class="section" id="id298">
+<div class="section" id="id300">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
@@ -2664,9 +2676,9 @@ libxml2 document instead of creating a new empty one</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id299">
+<div class="section" id="id301">
 <h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id300">
+<div class="section" id="id302">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
@@ -2678,7 +2690,7 @@ argument)</li>
 <li>Minor API performance improvements</li>
 </ul>
 </div>
-<div class="section" id="id301">
+<div class="section" id="id303">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
@@ -2687,9 +2699,9 @@ argument)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id302">
+<div class="section" id="id304">
 <h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id303">
+<div class="section" id="id305">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging API for libxml2 error messages</li>
@@ -2714,7 +2726,7 @@ parent element.</li>
 doc/sax.txt for more information.</li>
 </ul>
 </div>
-<div class="section" id="id304">
+<div class="section" id="id306">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Segfaults and memory leaks in various API functions of Element</li>
@@ -2726,9 +2738,9 @@ cannot support this due to libxslt deficiencies)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id305">
+<div class="section" id="id307">
 <h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id306">
+<div class="section" id="id308">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for copy.deepcopy() on elements. copy.copy() works also, but
@@ -2742,7 +2754,7 @@ supported and parsing of gzipped XML files works.</li>
 SubElement.</li>
 </ul>
 </div>
-<div class="section" id="id307">
+<div class="section" id="id309">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Use xslt-config instead of xml2-config to find out libxml2
@@ -2765,9 +2777,9 @@ fixed.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id308">
+<div class="section" id="id310">
 <h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id309">
+<div class="section" id="id311">
 <h2>Features added</h2>
 <ul class="simple">
 <li>parameters (XPath expressions) can be passed to XSLT using keyword
@@ -2797,7 +2809,7 @@ prefix declarations on these elements and these prefixes will show up
 in XML serialization.</li>
 </ul>
 </div>
-<div class="section" id="id310">
+<div class="section" id="id312">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Killed yet another memory management related bug: trees created
@@ -2818,9 +2830,9 @@ test both serializing to StringIO as well as serializing to a real file.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id311">
+<div class="section" id="id313">
 <h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id312">
+<div class="section" id="id314">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Changed setup.py so that library_dirs is also guessed. This should
@@ -2829,7 +2841,7 @@ wrong library (shipping with the OS) could be picked up.</li>
 <li>Tweaked setup.py so that it picks up the version from version.txt.</li>
 </ul>
 </div>
-<div class="section" id="id313">
+<div class="section" id="id315">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Do the right thing when handling namespaced attributes.</li>
@@ -2838,7 +2850,7 @@ had very nasty side-effects before this fix, sorry!</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id314">
+<div class="section" id="id316">
 <h1>0.5.1 (2005-04-09)</h1>
 <ul class="simple">
 <li>Python 2.2 compatibility fixes.</li>
@@ -2846,14 +2858,14 @@ had very nasty side-effects before this fix, sorry!</li>
 input wasn't properly being UTF-8 encoded.</li>
 </ul>
 </div>
-<div class="section" id="id315">
+<div class="section" id="id317">
 <h1>0.5 (2005-04-08)</h1>
 <p>Initial public release.</p>
 </div>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 5ac722d..dfcc2de 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="elementtree-compatibility-of-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
 
 <p>A lot of care has been taken to ensure compatibility between etree and
 ElementTree.  Nonetheless, some differences and incompatibilities exist:</p>
@@ -183,7 +183,7 @@ enough to replace a shallow copy in your case.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index e661ff3..2e1b3e8 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="credits">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Credits</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Credits</h1>
 
 <div class="section" id="main-contributors">
 <h1>Main contributors</h1>
@@ -72,7 +72,7 @@ Holger Krekel for originally hosting lxml on codespeak.net</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index b854e10..c6d37fe 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="lxml-cssselect">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.cssselect</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.cssselect</h1>
 
 <p>lxml supports a number of interesting languages for tree traversal and element
 selection.  The most important is obviously <a class="reference external" href="xpathxslt.html#xpath">XPath</a>, but there is also
@@ -92,7 +92,7 @@ namespace URIs: the <tt class="docutils literal">CSSSelector</tt> class accepts
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 3bb12b8..c62ed4f 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="using-custom-element-classes-in-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Using custom Element classes in lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Using custom Element classes in lxml</h1>
 
 <p>lxml has very sophisticated support for custom Element classes.  You
 can provide your own classes for Elements and have lxml use them by
@@ -443,7 +443,7 @@ subclasses for elements of this namespace:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 54ba7c9..09961d7 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="beautifulsoup-parser">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">BeautifulSoup Parser</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">BeautifulSoup Parser</h1>
 
 <p><a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> is a Python package that parses broken HTML, just like
 lxml supports it based on the parser of libxml2.  BeautifulSoup uses a
@@ -169,7 +169,7 @@ BeautifulSoup's <a class="reference external" href="http://www.crummy.com/softwa
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index a930ee8..7a2a97f 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="python-extensions-for-xpath-and-xslt">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Python extensions for XPath and XSLT</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Python extensions for XPath and XSLT</h1>
 
 <p>This document describes how to use Python extension functions in XPath
 and XSLT like this:</p>
@@ -505,7 +505,7 @@ will work:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 0a03cfb..c843d48 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="html5lib-parser">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">html5lib Parser</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">html5lib Parser</h1>
 
 <p><a class="reference external" href="http://code.google.com/p/html5lib/">html5lib</a> is a Python package that implements the HTML5 parsing algorithm
 which is heavily influenced by current browsers and based on the <a class="reference external" href="http://www.whatwg.org/specs/web-apps/current-work/">WHATWG
@@ -74,7 +74,7 @@ module.  Note that these are the parser classes provided by html5lib.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 46e6c73..9a4dee1 100644 (file)
@@ -10,7 +10,7 @@
 </head>
 <body>
 <div class="document" id="lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml - XML and HTML with Python</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml - XML and HTML with Python</h1>
 
 <div class="pagequote line-block">
 <div class="line"><a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3252/focus=3258">&#187; lxml takes all the pain out of XML. &#171;</a></div>
@@ -27,7 +27,7 @@ in the Python language.</p>
 XML feature completeness of these libraries with the simplicity of a
 native Python API, mostly compatible but superior to the well-known
 <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> API.  The latest release works with all CPython versions
-from 2.4 to 3.3.  See the <a class="reference external" href="intro.html">introduction</a> for more information about
+from 2.4 to 3.4.  See the <a class="reference external" href="intro.html">introduction</a> for more information about
 background and goals of the lxml project.  Some common questions are
 answered in the <a class="reference external" href="FAQ.html">FAQ</a>.</p>
 <div class="section" id="support-the-project">
@@ -43,7 +43,7 @@ your own benefit back to support the project, consider sending us
 money through PayPal that we can use for fixing bugs in the software
 and improving its features and documentation.  Please read the Legal
 Notice below, at the bottom of this page.  Thank you for your support.</p>
-<p class="center"><a class="reference external" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=R56JE3VCPDA9N"><img alt="Donate to the lxml project" src="https://github.com/lxml/lxml/raw/master/doc/html/paypal_btn_donateCC_LG.gif" style="width: 160px; height: 47px;" /></a></p>
+<p class="center"><a class="reference external" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=R56JE3VCPDA9N"><img alt="Donate to the lxml project" src="http://lxml.de/paypal_btn_donateCC_LG.png" style="width: 160px; height: 47px;" /></a></p>
 <p>Please <a class="reference external" href="http://consulting.behnel.de/">contact Stefan Behnel</a> for other ways to support the lxml project,
 as well as commercial consulting, customisations and trainings on lxml and
 fast Python XML processing.</p>
@@ -51,7 +51,7 @@ fast Python XML processing.</p>
 </div>
 <div class="section" id="documentation">
 <h1>Documentation</h1>
-<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.3.5.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.3.6.pdf">PDF
 documentation</a>.  The HTML documentation from this web site is part of
 the normal <a class="reference external" href="#download">source download</a>.</p>
 <ul class="simple">
@@ -114,8 +114,8 @@ external C modules, including fast custom element class support.</p>
 Index</a> (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with <a class="reference external" href="pubkey.asc">this key</a>.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-3.3.5.tgz">lxml 3.3.5</a>, released 2014-04-18
-(<a class="reference external" href="/changes-3.3.5.html">changes for 3.3.5</a>).  <a class="reference external" href="#old-versions">Older versions</a>
+<p>The latest version is <a class="reference external" href="/files/lxml-3.3.6.tgz">lxml 3.3.6</a>, released 2014-08-28
+(<a class="reference external" href="/changes-3.3.6.html">changes for 3.3.6</a>).  <a class="reference external" href="#old-versions">Older versions</a>
 are listed below.</p>
 <p>Please take a look at the
 <a class="reference external" href="installation.html">installation instructions</a> !</p>
@@ -123,7 +123,7 @@ are listed below.</p>
 part of the source distribution, so if you want to download the
 documentation for offline use, take the source archive and copy the
 <tt class="docutils literal">doc/html</tt> directory out of the source tree, or use the
-<a class="reference external" href="lxmldoc-3.3.5.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-3.3.6.pdf">PDF documentation</a>.</p>
 <p>The latest installable developer sources should usually be available from the
 <a class="reference external" href="http://lxml.de/build/">build server</a>.  It's also possible to check out
 the latest development version of lxml from github directly, using a command
@@ -173,6 +173,7 @@ obstacle to using lxml in your codebase.</p>
 <a class="reference external" href="http://lxml.de/3.2/">3.2</a>
 and the <a class="reference external" href="http://lxml.de/dev/">latest in-development version</a>.</p>
 <ul class="simple">
+<li><a class="reference external" href="/files/lxml-3.3.6.tgz">lxml 3.3.6</a>, released 2014-08-28 (<a class="reference external" href="/changes-3.3.6.html">changes for 3.3.6</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.3.5.tgz">lxml 3.3.5</a>, released 2014-04-18 (<a class="reference external" href="/changes-3.3.5.html">changes for 3.3.5</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.3.4.tgz">lxml 3.3.4</a>, released 2014-04-03 (<a class="reference external" href="/changes-3.3.4.html">changes for 3.3.4</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.3.3.tgz">lxml 3.3.3</a>, released 2014-03-04 (<a class="reference external" href="/changes-3.3.3.html">changes for 3.3.3</a>)</li>
@@ -219,7 +220,7 @@ donation is non-refundable.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 3607d87..f94f2ec 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="installing-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
 
 <p>For special installation instructions regarding MS Windows and
 MacOS-X, see the specific sections below.</p>
@@ -160,7 +160,7 @@ read the
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 1588383..36c8f23 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="why-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Why lxml?</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Why lxml?</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -66,7 +66,7 @@ having to learn new things -- XML is complicated enough.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 70bb19a..3c6114f 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="how-to-read-the-source-of-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to read the source of lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to read the source of lxml</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -270,7 +270,7 @@ implemented in pure Python.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 8c179ae..717c050 100644 (file)
@@ -9,7 +9,7 @@
 </head>
 <body>
 <div class="document" id="lxml-html">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -670,7 +670,7 @@ microformat.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 971ce3a..cb4f82a 100644 (file)
@@ -9,7 +9,7 @@
 </head>
 <body>
 <div class="document" id="lxml-objectify">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.objectify</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.objectify</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1149,7 +1149,7 @@ support any XPath expression.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 6d55d5e..4856e62 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="parsing-xml-and-html-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Parsing XML and HTML with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Parsing XML and HTML with lxml</h1>
 
 <p>lxml provides a very simple and powerful API for parsing XML and HTML.  It
 supports one-step parsing as well as step-by-step parsing using an
@@ -846,7 +846,7 @@ with UTF-8 is also considerably faster in most cases.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 11ff173..8bb8076 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="benchmarks-and-speed">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Benchmarks and Speed</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Benchmarks and Speed</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -782,7 +782,7 @@ random.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index d3539cf..6717e3a 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="document-loading-and-url-resolving">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Document loading and URL resolving</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Document loading and URL resolving</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -234,7 +234,7 @@ documents or raises exceptions if access is denied.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index b6e9d07..b07b7c1 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="sax-support">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Sax support</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Sax support</h1>
 
 <p>In this document we'll describe lxml's SAX support.  lxml has support for
 producing SAX events for an ElementTree or Element.  lxml can also turn SAX
@@ -108,7 +108,7 @@ DOM implementation connot generate SAX events from a DOM tree.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 3ba0454..dc5a30d 100644 (file)
@@ -8,5 +8,5 @@
    </head>
    <body>
   <h1>Sitemap of lxml.de - Processing XML and HTML with Python</h1>
-   <div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/files/">Download files</a></li></ul></div></body>
+   <div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/files/">Download files</a></li></ul></div></body>
  </html>
\ No newline at end of file
index b878fd0..47cfec3 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="the-lxml-etree-tutorial">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The lxml.etree Tutorial</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The lxml.etree Tutorial</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1141,7 +1141,7 @@ whereas the other two examples would raise a <tt class="docutils literal">StopIt
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index df34ad2..915090f 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="validation-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Validation with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Validation with lxml</h1>
 
 <p>Apart from the built-in DTD support in parsers, lxml currently supports three
 schema languages: <a class="reference external" href="http://en.wikipedia.org/wiki/Document_Type_Definition">DTD</a>, <a class="reference external" href="http://www.relaxng.org/">Relax NG</a> and <a class="reference external" href="http://www.w3.org/XML/Schema">XML Schema</a>.  All three provide
@@ -536,7 +536,7 @@ reporting during validation.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index 235fad7..adfed67 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="xpath-and-xslt-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 5-menu"><li class="menu title"><a href="changes-3.3.5.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">XPath and XSLT with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 3 6-menu"><li class="menu title"><a href="changes-3.3.6.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">XPath and XSLT with lxml</h1>
 
 <p>lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through
 libxml2 and libxslt in a standards compliant way.</p>
@@ -589,7 +589,7 @@ If you want to free it from memory, just do:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2014-04-18.
+Generated on: 2014-08-28.
 
 </div>
 </body>
index a941a16..8f27650 100644 (file)
@@ -35,7 +35,7 @@ libxml2_ and libxslt_.  It is unique in that it combines the speed and
 XML feature completeness of these libraries with the simplicity of a
 native Python API, mostly compatible but superior to the well-known
 ElementTree_ API.  The latest release works with all CPython versions
-from 2.4 to 3.3.  See the introduction_ for more information about
+from 2.4 to 3.4.  See the introduction_ for more information about
 background and goals of the lxml project.  Some common questions are
 answered in the FAQ_.
 
@@ -157,8 +157,8 @@ Index <http://pypi.python.org/pypi/lxml/>`_ (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with `this key <pubkey.asc>`_.
 
-The latest version is `lxml 3.3.5`_, released 2014-04-18
-(`changes for 3.3.5`_).  `Older versions <#old-versions>`_
+The latest version is `lxml 3.3.6`_, released 2014-08-28
+(`changes for 3.3.6`_).  `Older versions <#old-versions>`_
 are listed below.
 
 Please take a look at the
@@ -240,7 +240,9 @@ See the web sites of lxml
 `3.2 <http://lxml.de/3.2/>`_
 and the `latest in-development version <http://lxml.de/dev/>`_.
 
-.. _`PDF documentation`: lxmldoc-3.3.5.pdf
+.. _`PDF documentation`: lxmldoc-3.3.6.pdf
+
+* `lxml 3.3.6`_, released 2014-08-28 (`changes for 3.3.6`_)
 
 * `lxml 3.3.5`_, released 2014-04-18 (`changes for 3.3.5`_)
 
@@ -290,6 +292,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 
 * `older releases <http://lxml.de/3.0/#old-versions>`_
 
+.. _`lxml 3.3.6`: /files/lxml-3.3.6.tgz
 .. _`lxml 3.3.5`: /files/lxml-3.3.5.tgz
 .. _`lxml 3.3.4`: /files/lxml-3.3.4.tgz
 .. _`lxml 3.3.3`: /files/lxml-3.3.3.tgz
@@ -314,6 +317,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 .. _`lxml 3.0.1`: /files/lxml-3.0.1.tgz
 .. _`lxml 3.0`: /files/lxml-3.0.tgz
 
+.. _`changes for 3.3.6`: /changes-3.3.6.html
 .. _`changes for 3.3.5`: /changes-3.3.5.html
 .. _`changes for 3.3.4`: /changes-3.3.4.html
 .. _`changes for 3.3.3`: /changes-3.3.3.html
index 9f660ec..b98b227 100644 (file)
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.3.5
+Version: 3.3.6
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
 Author-email: lxml-dev@lxml.de
 License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.5.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.6.tar.gz
 Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.  It
         provides safe and convenient access to these libraries using the ElementTree
         API.
@@ -37,14 +37,18 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.3.5 (2014-04-18)
+        3.3.6 (2014-08-28)
         ==================
         
         Bugs fixed
         ----------
         
-        * HTML cleaning could fail to strip javascript links that mix control
-          characters into the link scheme.
+        * Prevent tree cycle creation when adding Elements as siblings.
+        
+        * LP#1361948: crash when deallocating Element siblings without parent.
+        
+        * LP#1354652: crash when traversing internally loaded documents in XSLT
+          extension functions.
         
         
         
index b9be483..595cdcb 100644 (file)
@@ -60,7 +60,7 @@ doc/html/FAQ.html
 doc/html/api.html
 doc/html/build.html
 doc/html/capi.html
-doc/html/changes-3.3.5.html
+doc/html/changes-3.3.6.html
 doc/html/compatibility.html
 doc/html/credits.html
 doc/html/cssselect.html
index 0ba0a01..66b4f25 100644 (file)
@@ -74,6 +74,13 @@ cdef _Element _rootNodeOrRaise(object input):
     _assertValidNode(node)
     return node
 
+cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):
+    while c_node:
+        if c_node is c_ancestor:
+            return True
+        c_node = c_node.parent
+    return False
+
 cdef _Element _makeElement(tag, xmlDoc* c_doc, _Document doc,
                            _BaseParser parser, text, tail, attrib, nsmap,
                            dict extra_attrs):
@@ -1243,11 +1250,8 @@ cdef int _appendChild(_Element parent, _Element child) except -1:
     c_node = child._c_node
     c_source_doc = c_node.doc
     # prevent cycles
-    c_parent = parent._c_node
-    while c_parent:
-        if c_parent is c_node:
-            raise ValueError("cannot append parent to itself")
-        c_parent = c_parent.parent
+    if _isAncestorOrSame(c_node, parent._c_node):
+        raise ValueError("cannot append parent to itself")
     # store possible text node
     c_next = c_node.next
     # move node itself
@@ -1265,11 +1269,8 @@ cdef int _prependChild(_Element parent, _Element child) except -1:
     c_node = child._c_node
     c_source_doc = c_node.doc
     # prevent cycles
-    c_parent = parent._c_node
-    while c_parent:
-        if c_parent is c_node:
-            raise ValueError("cannot append parent to itself")
-        c_parent = c_parent.parent
+    if _isAncestorOrSame(c_node, parent._c_node):
+        raise ValueError("cannot append parent to itself")
     # store possible text node
     c_next = c_node.next
     # move node itself
@@ -1288,31 +1289,28 @@ cdef int _prependChild(_Element parent, _Element child) except -1:
 cdef int _appendSibling(_Element element, _Element sibling) except -1:
     u"""Add a new sibling behind an element.
     """
-    c_node = sibling._c_node
-    if element._c_node is c_node:
-        return 0  # nothing to do
-    c_source_doc = c_node.doc
-    # store possible text node
-    c_next = c_node.next
-    # move node itself
-    tree.xmlAddNextSibling(element._c_node, c_node)
-    _moveTail(c_next, c_node)
-    # uh oh, elements may be pointing to different doc when
-    # parent element has moved; change them too..
-    moveNodeToDocument(element._doc, c_source_doc, c_node)
-    return 0
+    return _addSibling(element, sibling, as_next=True)
 
 cdef int _prependSibling(_Element element, _Element sibling) except -1:
     u"""Add a new sibling before an element.
     """
+    return _addSibling(element, sibling, as_next=False)
+
+cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
     c_node = sibling._c_node
-    if element._c_node is c_node:
-        return 0  # nothing to do
     c_source_doc = c_node.doc
+    # prevent cycles
+    if _isAncestorOrSame(c_node, element._c_node):
+        if element._c_node is c_node:
+            return 0  # nothing to do
+        raise ValueError("cannot add ancestor as sibling, please break cycle first")
     # store possible text node
     c_next = c_node.next
     # move node itself
-    tree.xmlAddPrevSibling(element._c_node, c_node)
+    if as_next:
+        tree.xmlAddNextSibling(element._c_node, c_node)
+    else:
+        tree.xmlAddPrevSibling(element._c_node, c_node)
     _moveTail(c_next, c_node)
     # uh oh, elements may be pointing to different doc when
     # parent element has moved; change them too..
index 531036e..24d3ff1 100644 (file)
@@ -708,11 +708,13 @@ cdef _Element _instantiateElementFromXPath(xmlNode* c_node, _Document doc,
         # not from the context document and not from a fake document
         # either => may still be from a known document, e.g. one
         # created by an extension function
-        doc = context._findDocumentForNode(c_node)
-        if doc is None:
+        node_doc = context._findDocumentForNode(c_node)
+        if node_doc is None:
             # not from a known document at all! => can only make a
             # safety copy here
             c_node = tree.xmlDocCopyNode(c_node, doc._c_doc, 1)
+        else:
+            doc = node_doc
     return _fakeDocElementFactory(doc, c_node)
 
 ################################################################################
index cf1eaa3..62dece8 100644 (file)
@@ -1,3 +1,3 @@
 #ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "3.3.5"
+#define LXML_VERSION_STRING "3.3.6"
 #endif
index 0c8e0c0..9cb2365 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.20.1 on Fri Apr 18 08:54:38 2014 */
+/* Generated by Cython 0.20.1 on Thu Aug 28 16:32:20 2014 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -813,7 +813,7 @@ struct __pyx_t_4lxml_5etree_qname {
  */
 typedef xmlNode *(*_node_to_node_function)(xmlNode *);
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":220
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":233
  *         c_parent = c_parent.parent
  * 
  * ctypedef struct _nscache:             # <<<<<<<<<<<<<<
@@ -827,7 +827,7 @@ struct __pyx_t_4lxml_5etree__nscache {
   size_t last;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":300
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":307
  *     return 0
  * 
  * ctypedef struct _ns_node_ref:             # <<<<<<<<<<<<<<
@@ -2155,7 +2155,7 @@ struct __pyx_obj_4lxml_5etree__ExsltRegExp {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":722
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":724
  * 
  * @cython.final
  * cdef class _ElementUnicodeResult(unicode):             # <<<<<<<<<<<<<<
@@ -4903,6 +4903,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidNode(struct LxmlElemen
 static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidDoc(struct LxmlDocument *); /*proto*/
 static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *); /*proto*/
 static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *); /*proto*/
+static int __pyx_f_4lxml_5etree__isAncestorOrSame(xmlNode *, xmlNode *); /*proto*/
 static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *, xmlDoc *, struct LxmlDocument *, struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/
 static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *, int, PyObject *, PyObject *, struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *, PyObject *, PyObject *); /*proto*/
 static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlElement *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/
@@ -4956,6 +4957,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *, struct LxmlEl
 static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *, struct LxmlElement *); /*proto*/
 static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *, struct LxmlElement *); /*proto*/
 static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *, struct LxmlElement *); /*proto*/
+static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *, struct LxmlElement *, int); /*proto*/
 static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *); /*proto*/
 static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *); /*proto*/
 static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar *); /*proto*/
@@ -5906,25 +5908,25 @@ static char __pyx_k_TAG[] = "TAG";
 static char __pyx_k_XML[] = "XML";
 static char __pyx_k__14[] = " ";
 static char __pyx_k__15[] = "";
-static char __pyx_k__21[] = "\n";
-static char __pyx_k__24[] = "&";
-static char __pyx_k__25[] = ";";
-static char __pyx_k__30[] = "/";
-static char __pyx_k__34[] = "*";
-static char __pyx_k__35[] = "{*}*";
-static char __pyx_k__46[] = "_";
-static char __pyx_k__51[] = "'?>\n";
-static char __pyx_k__52[] = "\" \"";
-static char __pyx_k__53[] = "\"";
-static char __pyx_k__54[] = ">\n";
-static char __pyx_k__55[] = " [\n";
-static char __pyx_k__56[] = "]>\n";
-static char __pyx_k__60[] = ":";
-static char __pyx_k__62[] = "<";
-static char __pyx_k__63[] = ">";
-static char __pyx_k__64[] = "=\"";
-static char __pyx_k__70[] = "</";
-static char __pyx_k__92[] = ", ";
+static char __pyx_k__22[] = "\n";
+static char __pyx_k__25[] = "&";
+static char __pyx_k__26[] = ";";
+static char __pyx_k__31[] = "/";
+static char __pyx_k__35[] = "*";
+static char __pyx_k__36[] = "{*}*";
+static char __pyx_k__47[] = "_";
+static char __pyx_k__52[] = "'?>\n";
+static char __pyx_k__53[] = "\" \"";
+static char __pyx_k__54[] = "\"";
+static char __pyx_k__55[] = ">\n";
+static char __pyx_k__56[] = " [\n";
+static char __pyx_k__57[] = "]>\n";
+static char __pyx_k__61[] = ":";
+static char __pyx_k__63[] = "<";
+static char __pyx_k__64[] = ">";
+static char __pyx_k__65[] = "=\"";
+static char __pyx_k__71[] = "</";
+static char __pyx_k__93[] = ", ";
 static char __pyx_k_add[] = "add";
 static char __pyx_k_all[] = "__all__";
 static char __pyx_k_any[] = "any";
@@ -5957,8 +5959,8 @@ static char __pyx_k_xsl[] = "xsl";
 static char __pyx_k_HTML[] = "HTML";
 static char __pyx_k_UTF8[] = "UTF8";
 static char __pyx_k_XSLT[] = "XSLT";
-static char __pyx_k__201[] = "(\"[^\"]*\")|('[^']*')";
-static char __pyx_k__203[] = "({[^}]+})";
+static char __pyx_k__202[] = "(\"[^\"]*\")|('[^']*')";
+static char __pyx_k__204[] = "({[^}]+})";
 static char __pyx_k_args[] = "args";
 static char __pyx_k_beta[] = "beta";
 static char __pyx_k_c14n[] = "c14n";
@@ -6804,6 +6806,7 @@ static char __pyx_k_XML_text_parser_None_base_url_No[] = "XML(text, parser=None,
 static char __pyx_k_XPath_context_is_only_usable_dur[] = "XPath context is only usable during the evaluation";
 static char __pyx_k_argument_must_be_a_byte_string_o[] = "argument must be a byte string or unicode string";
 static char __pyx_k_attempt_to_assign_sequence_of_si[] = "attempt to assign sequence of size %d to extended slice of size %d";
+static char __pyx_k_cannot_add_ancestor_as_sibling_p[] = "cannot add ancestor as sibling, please break cycle first";
 static char __pyx_k_cannot_append_document_already_h[] = "cannot append, document already has a root element";
 static char __pyx_k_cannot_append_trailing_element_t[] = "cannot append trailing element to complete XML document";
 static char __pyx_k_comment_class_must_be_subclass_o[] = "comment class must be subclass of CommentBase";
@@ -7203,28 +7206,28 @@ static PyObject *__pyx_kp_u__14;
 static PyObject *__pyx_kp_b__15;
 static PyObject *__pyx_kp_s__15;
 static PyObject *__pyx_kp_u__15;
-static PyObject *__pyx_kp_b__201;
-static PyObject *__pyx_kp_b__203;
-static PyObject *__pyx_kp_s__21;
-static PyObject *__pyx_kp_u__21;
-static PyObject *__pyx_kp_b__24;
-static PyObject *__pyx_kp_u__24;
+static PyObject *__pyx_kp_b__202;
+static PyObject *__pyx_kp_b__204;
+static PyObject *__pyx_kp_s__22;
+static PyObject *__pyx_kp_u__22;
 static PyObject *__pyx_kp_b__25;
 static PyObject *__pyx_kp_u__25;
+static PyObject *__pyx_kp_b__26;
+static PyObject *__pyx_kp_u__26;
 static PyObject *__pyx_kp_u__3;
-static PyObject *__pyx_kp_s__30;
-static PyObject *__pyx_kp_b__34;
-static PyObject *__pyx_kp_s__34;
+static PyObject *__pyx_kp_s__31;
+static PyObject *__pyx_kp_b__35;
 static PyObject *__pyx_kp_s__35;
+static PyObject *__pyx_kp_s__36;
 static PyObject *__pyx_kp_b__4;
 static PyObject *__pyx_kp_s__4;
 static PyObject *__pyx_kp_u__4;
-static PyObject *__pyx_n_s__46;
-static PyObject *__pyx_n_u__46;
-static PyObject *__pyx_kp_u__53;
-static PyObject *__pyx_kp_b__60;
-static PyObject *__pyx_kp_u__63;
-static PyObject *__pyx_kp_u__92;
+static PyObject *__pyx_n_s__47;
+static PyObject *__pyx_n_u__47;
+static PyObject *__pyx_kp_u__54;
+static PyObject *__pyx_kp_b__61;
+static PyObject *__pyx_kp_u__64;
+static PyObject *__pyx_kp_u__93;
 static PyObject *__pyx_n_s_abspath;
 static PyObject *__pyx_n_s_accepted_domains;
 static PyObject *__pyx_n_s_access_control;
@@ -7262,6 +7265,7 @@ static PyObject *__pyx_n_s_c_node_copy;
 static PyObject *__pyx_n_s_c_ns_tags;
 static PyObject *__pyx_n_s_c_tag_count;
 static PyObject *__pyx_kp_u_can_only_parse_strings;
+static PyObject *__pyx_kp_s_cannot_add_ancestor_as_sibling_p;
 static PyObject *__pyx_kp_u_cannot_append_document_already_h;
 static PyObject *__pyx_kp_s_cannot_append_parent_to_itself;
 static PyObject *__pyx_kp_s_cannot_append_trailing_element_t;
@@ -7810,18 +7814,18 @@ static PyObject *__pyx_tuple__6;
 static PyObject *__pyx_tuple__8;
 static PyObject *__pyx_slice__11;
 static PyObject *__pyx_slice__13;
-static PyObject *__pyx_slice__29;
-static PyObject *__pyx_slice__31;
+static PyObject *__pyx_slice__30;
 static PyObject *__pyx_slice__32;
 static PyObject *__pyx_slice__33;
-static PyObject *__pyx_slice__43;
-static PyObject *__pyx_slice__45;
-static PyObject *__pyx_slice__66;
+static PyObject *__pyx_slice__34;
+static PyObject *__pyx_slice__44;
+static PyObject *__pyx_slice__46;
 static PyObject *__pyx_slice__67;
-static PyObject *__pyx_slice__69;
-static PyObject *__pyx_slice__84;
+static PyObject *__pyx_slice__68;
+static PyObject *__pyx_slice__70;
 static PyObject *__pyx_slice__85;
-static PyObject *__pyx_slice__90;
+static PyObject *__pyx_slice__86;
+static PyObject *__pyx_slice__91;
 static PyObject *__pyx_tuple__10;
 static PyObject *__pyx_tuple__12;
 static PyObject *__pyx_tuple__16;
@@ -7829,30 +7833,30 @@ static PyObject *__pyx_tuple__17;
 static PyObject *__pyx_tuple__18;
 static PyObject *__pyx_tuple__19;
 static PyObject *__pyx_tuple__20;
-static PyObject *__pyx_tuple__22;
+static PyObject *__pyx_tuple__21;
 static PyObject *__pyx_tuple__23;
-static PyObject *__pyx_tuple__26;
+static PyObject *__pyx_tuple__24;
 static PyObject *__pyx_tuple__27;
 static PyObject *__pyx_tuple__28;
-static PyObject *__pyx_tuple__36;
+static PyObject *__pyx_tuple__29;
 static PyObject *__pyx_tuple__37;
 static PyObject *__pyx_tuple__38;
 static PyObject *__pyx_tuple__39;
 static PyObject *__pyx_tuple__40;
 static PyObject *__pyx_tuple__41;
 static PyObject *__pyx_tuple__42;
-static PyObject *__pyx_tuple__44;
-static PyObject *__pyx_tuple__47;
+static PyObject *__pyx_tuple__43;
+static PyObject *__pyx_tuple__45;
 static PyObject *__pyx_tuple__48;
 static PyObject *__pyx_tuple__49;
 static PyObject *__pyx_tuple__50;
-static PyObject *__pyx_tuple__57;
+static PyObject *__pyx_tuple__51;
 static PyObject *__pyx_tuple__58;
 static PyObject *__pyx_tuple__59;
-static PyObject *__pyx_tuple__61;
-static PyObject *__pyx_tuple__65;
-static PyObject *__pyx_tuple__68;
-static PyObject *__pyx_tuple__71;
+static PyObject *__pyx_tuple__60;
+static PyObject *__pyx_tuple__62;
+static PyObject *__pyx_tuple__66;
+static PyObject *__pyx_tuple__69;
 static PyObject *__pyx_tuple__72;
 static PyObject *__pyx_tuple__73;
 static PyObject *__pyx_tuple__74;
@@ -7865,12 +7869,12 @@ static PyObject *__pyx_tuple__80;
 static PyObject *__pyx_tuple__81;
 static PyObject *__pyx_tuple__82;
 static PyObject *__pyx_tuple__83;
-static PyObject *__pyx_tuple__86;
+static PyObject *__pyx_tuple__84;
 static PyObject *__pyx_tuple__87;
 static PyObject *__pyx_tuple__88;
 static PyObject *__pyx_tuple__89;
-static PyObject *__pyx_tuple__91;
-static PyObject *__pyx_tuple__93;
+static PyObject *__pyx_tuple__90;
+static PyObject *__pyx_tuple__92;
 static PyObject *__pyx_tuple__94;
 static PyObject *__pyx_tuple__95;
 static PyObject *__pyx_tuple__96;
@@ -7884,108 +7888,109 @@ static PyObject *__pyx_tuple__103;
 static PyObject *__pyx_tuple__104;
 static PyObject *__pyx_tuple__105;
 static PyObject *__pyx_tuple__106;
-static PyObject *__pyx_tuple__108;
-static PyObject *__pyx_tuple__110;
-static PyObject *__pyx_tuple__112;
-static PyObject *__pyx_tuple__114;
-static PyObject *__pyx_tuple__116;
-static PyObject *__pyx_tuple__118;
-static PyObject *__pyx_tuple__120;
+static PyObject *__pyx_tuple__107;
+static PyObject *__pyx_tuple__109;
+static PyObject *__pyx_tuple__111;
+static PyObject *__pyx_tuple__113;
+static PyObject *__pyx_tuple__115;
+static PyObject *__pyx_tuple__117;
+static PyObject *__pyx_tuple__119;
 static PyObject *__pyx_tuple__121;
 static PyObject *__pyx_tuple__122;
-static PyObject *__pyx_tuple__124;
-static PyObject *__pyx_tuple__126;
+static PyObject *__pyx_tuple__123;
+static PyObject *__pyx_tuple__125;
 static PyObject *__pyx_tuple__127;
-static PyObject *__pyx_tuple__129;
+static PyObject *__pyx_tuple__128;
 static PyObject *__pyx_tuple__130;
-static PyObject *__pyx_tuple__132;
+static PyObject *__pyx_tuple__131;
 static PyObject *__pyx_tuple__133;
 static PyObject *__pyx_tuple__134;
 static PyObject *__pyx_tuple__135;
 static PyObject *__pyx_tuple__136;
-static PyObject *__pyx_tuple__138;
-static PyObject *__pyx_tuple__140;
-static PyObject *__pyx_tuple__142;
-static PyObject *__pyx_tuple__144;
-static PyObject *__pyx_tuple__146;
-static PyObject *__pyx_tuple__148;
-static PyObject *__pyx_tuple__150;
-static PyObject *__pyx_tuple__152;
-static PyObject *__pyx_tuple__154;
-static PyObject *__pyx_tuple__156;
-static PyObject *__pyx_tuple__158;
-static PyObject *__pyx_tuple__160;
-static PyObject *__pyx_tuple__162;
-static PyObject *__pyx_tuple__164;
-static PyObject *__pyx_tuple__166;
-static PyObject *__pyx_tuple__168;
-static PyObject *__pyx_tuple__170;
-static PyObject *__pyx_tuple__172;
-static PyObject *__pyx_tuple__174;
-static PyObject *__pyx_tuple__177;
+static PyObject *__pyx_tuple__137;
+static PyObject *__pyx_tuple__139;
+static PyObject *__pyx_tuple__141;
+static PyObject *__pyx_tuple__143;
+static PyObject *__pyx_tuple__145;
+static PyObject *__pyx_tuple__147;
+static PyObject *__pyx_tuple__149;
+static PyObject *__pyx_tuple__151;
+static PyObject *__pyx_tuple__153;
+static PyObject *__pyx_tuple__155;
+static PyObject *__pyx_tuple__157;
+static PyObject *__pyx_tuple__159;
+static PyObject *__pyx_tuple__161;
+static PyObject *__pyx_tuple__163;
+static PyObject *__pyx_tuple__165;
+static PyObject *__pyx_tuple__167;
+static PyObject *__pyx_tuple__169;
+static PyObject *__pyx_tuple__171;
+static PyObject *__pyx_tuple__173;
+static PyObject *__pyx_tuple__175;
 static PyObject *__pyx_tuple__178;
-static PyObject *__pyx_tuple__180;
-static PyObject *__pyx_tuple__182;
-static PyObject *__pyx_tuple__184;
-static PyObject *__pyx_tuple__186;
-static PyObject *__pyx_tuple__188;
-static PyObject *__pyx_tuple__190;
-static PyObject *__pyx_tuple__192;
-static PyObject *__pyx_tuple__194;
+static PyObject *__pyx_tuple__179;
+static PyObject *__pyx_tuple__181;
+static PyObject *__pyx_tuple__183;
+static PyObject *__pyx_tuple__185;
+static PyObject *__pyx_tuple__187;
+static PyObject *__pyx_tuple__189;
+static PyObject *__pyx_tuple__191;
+static PyObject *__pyx_tuple__193;
 static PyObject *__pyx_tuple__195;
-static PyObject *__pyx_tuple__197;
-static PyObject *__pyx_tuple__199;
-static PyObject *__pyx_tuple__202;
-static PyObject *__pyx_tuple__204;
+static PyObject *__pyx_tuple__196;
+static PyObject *__pyx_tuple__198;
+static PyObject *__pyx_tuple__200;
+static PyObject *__pyx_tuple__203;
 static PyObject *__pyx_tuple__205;
-static PyObject *__pyx_tuple__207;
-static PyObject *__pyx_tuple__209;
+static PyObject *__pyx_tuple__206;
+static PyObject *__pyx_tuple__208;
 static PyObject *__pyx_tuple__210;
-static PyObject *__pyx_codeobj__107;
-static PyObject *__pyx_codeobj__109;
-static PyObject *__pyx_codeobj__111;
-static PyObject *__pyx_codeobj__113;
-static PyObject *__pyx_codeobj__115;
-static PyObject *__pyx_codeobj__117;
-static PyObject *__pyx_codeobj__119;
-static PyObject *__pyx_codeobj__123;
-static PyObject *__pyx_codeobj__125;
-static PyObject *__pyx_codeobj__128;
-static PyObject *__pyx_codeobj__131;
-static PyObject *__pyx_codeobj__137;
-static PyObject *__pyx_codeobj__139;
-static PyObject *__pyx_codeobj__141;
-static PyObject *__pyx_codeobj__143;
-static PyObject *__pyx_codeobj__145;
-static PyObject *__pyx_codeobj__147;
-static PyObject *__pyx_codeobj__149;
-static PyObject *__pyx_codeobj__151;
-static PyObject *__pyx_codeobj__153;
-static PyObject *__pyx_codeobj__155;
-static PyObject *__pyx_codeobj__157;
-static PyObject *__pyx_codeobj__159;
-static PyObject *__pyx_codeobj__161;
-static PyObject *__pyx_codeobj__163;
-static PyObject *__pyx_codeobj__165;
-static PyObject *__pyx_codeobj__167;
-static PyObject *__pyx_codeobj__169;
-static PyObject *__pyx_codeobj__171;
-static PyObject *__pyx_codeobj__173;
-static PyObject *__pyx_codeobj__175;
+static PyObject *__pyx_tuple__211;
+static PyObject *__pyx_codeobj__108;
+static PyObject *__pyx_codeobj__110;
+static PyObject *__pyx_codeobj__112;
+static PyObject *__pyx_codeobj__114;
+static PyObject *__pyx_codeobj__116;
+static PyObject *__pyx_codeobj__118;
+static PyObject *__pyx_codeobj__120;
+static PyObject *__pyx_codeobj__124;
+static PyObject *__pyx_codeobj__126;
+static PyObject *__pyx_codeobj__129;
+static PyObject *__pyx_codeobj__132;
+static PyObject *__pyx_codeobj__138;
+static PyObject *__pyx_codeobj__140;
+static PyObject *__pyx_codeobj__142;
+static PyObject *__pyx_codeobj__144;
+static PyObject *__pyx_codeobj__146;
+static PyObject *__pyx_codeobj__148;
+static PyObject *__pyx_codeobj__150;
+static PyObject *__pyx_codeobj__152;
+static PyObject *__pyx_codeobj__154;
+static PyObject *__pyx_codeobj__156;
+static PyObject *__pyx_codeobj__158;
+static PyObject *__pyx_codeobj__160;
+static PyObject *__pyx_codeobj__162;
+static PyObject *__pyx_codeobj__164;
+static PyObject *__pyx_codeobj__166;
+static PyObject *__pyx_codeobj__168;
+static PyObject *__pyx_codeobj__170;
+static PyObject *__pyx_codeobj__172;
+static PyObject *__pyx_codeobj__174;
 static PyObject *__pyx_codeobj__176;
-static PyObject *__pyx_codeobj__179;
-static PyObject *__pyx_codeobj__181;
-static PyObject *__pyx_codeobj__183;
-static PyObject *__pyx_codeobj__185;
-static PyObject *__pyx_codeobj__187;
-static PyObject *__pyx_codeobj__189;
-static PyObject *__pyx_codeobj__191;
-static PyObject *__pyx_codeobj__193;
-static PyObject *__pyx_codeobj__196;
-static PyObject *__pyx_codeobj__198;
-static PyObject *__pyx_codeobj__200;
-static PyObject *__pyx_codeobj__206;
-static PyObject *__pyx_codeobj__208;
+static PyObject *__pyx_codeobj__177;
+static PyObject *__pyx_codeobj__180;
+static PyObject *__pyx_codeobj__182;
+static PyObject *__pyx_codeobj__184;
+static PyObject *__pyx_codeobj__186;
+static PyObject *__pyx_codeobj__188;
+static PyObject *__pyx_codeobj__190;
+static PyObject *__pyx_codeobj__192;
+static PyObject *__pyx_codeobj__194;
+static PyObject *__pyx_codeobj__197;
+static PyObject *__pyx_codeobj__199;
+static PyObject *__pyx_codeobj__201;
+static PyObject *__pyx_codeobj__207;
+static PyObject *__pyx_codeobj__209;
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":105
  *         from UserDict import UserDict as MutableMapping  # Py2.[45]
@@ -11384,14 +11389,17 @@ static int __pyx_f_4lxml_5etree_attemptDeallocation(xmlNode *__pyx_v_c_node) {
  */
 
 static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node) {
+  xmlNode *__pyx_v_c_next;
   xmlNode *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
+  int __pyx_t_3;
+  int __pyx_t_4;
   __Pyx_RefNannySetupContext("getDeallocationTop", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":171
- *     """
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":172
+ *     cdef xmlNode* c_next
  *     #print "trying to do deallocating:", c_node.type
  *     if hasProxy(c_node):             # <<<<<<<<<<<<<<
  *         #print "Not freeing: proxies still exist"
@@ -11400,7 +11408,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
   __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":173
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":174
  *     if hasProxy(c_node):
  *         #print "Not freeing: proxies still exist"
  *         return NULL             # <<<<<<<<<<<<<<
@@ -11411,7 +11419,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":174
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":175
  *         #print "Not freeing: proxies still exist"
  *         return NULL
  *     while c_node.parent is not NULL:             # <<<<<<<<<<<<<<
@@ -11422,7 +11430,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
     __pyx_t_1 = ((__pyx_v_c_node->parent != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":175
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":176
  *         return NULL
  *     while c_node.parent is not NULL:
  *         c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -11432,7 +11440,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
     __pyx_t_2 = __pyx_v_c_node->parent;
     __pyx_v_c_node = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":177
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":178
  *         c_node = c_node.parent
  *         #print "checking:", c_current.type
  *         if c_node.type == tree.XML_DOCUMENT_NODE or \             # <<<<<<<<<<<<<<
@@ -11442,7 +11450,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
     switch (__pyx_v_c_node->type) {
       case XML_DOCUMENT_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":178
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":179
  *         #print "checking:", c_current.type
  *         if c_node.type == tree.XML_DOCUMENT_NODE or \
  *                c_node.type == tree.XML_HTML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -11451,7 +11459,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  */
       case XML_HTML_DOCUMENT_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":180
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":181
  *                c_node.type == tree.XML_HTML_DOCUMENT_NODE:
  *             #print "not freeing: still in doc"
  *             return NULL             # <<<<<<<<<<<<<<
@@ -11464,7 +11472,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
       default: break;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":182
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":183
  *             return NULL
  *         # if we're still attached to the document, don't deallocate
  *         if hasProxy(c_node):             # <<<<<<<<<<<<<<
@@ -11474,51 +11482,193 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
     __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":184
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":185
  *         if hasProxy(c_node):
  *             #print "Not freeing: proxies still exist"
  *             return NULL             # <<<<<<<<<<<<<<
  *     # see whether we have children to deallocate
- *     if canDeallocateChildNodes(c_node):
+ *     if not canDeallocateChildNodes(c_node):
  */
       __pyx_r = NULL;
       goto __pyx_L0;
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":186
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":187
  *             return NULL
  *     # see whether we have children to deallocate
- *     if canDeallocateChildNodes(c_node):             # <<<<<<<<<<<<<<
- *         return c_node
- *     else:
+ *     if not canDeallocateChildNodes(c_node):             # <<<<<<<<<<<<<<
+ *         return NULL
+ *     # see whether we have siblings to deallocate
  */
-  __pyx_t_1 = (__pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_node) != 0);
+  __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_node) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":187
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":188
  *     # see whether we have children to deallocate
- *     if canDeallocateChildNodes(c_node):
- *         return c_node             # <<<<<<<<<<<<<<
- *     else:
- *         return NULL
+ *     if not canDeallocateChildNodes(c_node):
+ *         return NULL             # <<<<<<<<<<<<<<
+ *     # see whether we have siblings to deallocate
+ *     c_next = c_node.prev
  */
-    __pyx_r = __pyx_v_c_node;
+    __pyx_r = NULL;
     goto __pyx_L0;
   }
-  /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":189
- *         return c_node
- *     else:
- *         return NULL             # <<<<<<<<<<<<<<
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":190
+ *         return NULL
+ *     # see whether we have siblings to deallocate
+ *     c_next = c_node.prev             # <<<<<<<<<<<<<<
+ *     while c_next:
+ *         if _isElement(c_next):
+ */
+  __pyx_t_2 = __pyx_v_c_node->prev;
+  __pyx_v_c_next = __pyx_t_2;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":191
+ *     # see whether we have siblings to deallocate
+ *     c_next = c_node.prev
+ *     while c_next:             # <<<<<<<<<<<<<<
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ */
+  while (1) {
+    __pyx_t_1 = (__pyx_v_c_next != 0);
+    if (!__pyx_t_1) break;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":192
+ *     c_next = c_node.prev
+ *     while c_next:
+ *         if _isElement(c_next):             # <<<<<<<<<<<<<<
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL
+ */
+    __pyx_t_1 = (_isElement(__pyx_v_c_next) != 0);
+    if (__pyx_t_1) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":193
+ *     while c_next:
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):             # <<<<<<<<<<<<<<
+ *                 return NULL
+ *         c_next = c_next.prev
+ */
+      __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_next) != 0);
+      if (!__pyx_t_1) {
+        __pyx_t_3 = ((!(__pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_next) != 0)) != 0);
+        __pyx_t_4 = __pyx_t_3;
+      } else {
+        __pyx_t_4 = __pyx_t_1;
+      }
+      if (__pyx_t_4) {
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":194
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL             # <<<<<<<<<<<<<<
+ *         c_next = c_next.prev
+ *     c_next = c_node.next
+ */
+        __pyx_r = NULL;
+        goto __pyx_L0;
+      }
+      goto __pyx_L10;
+    }
+    __pyx_L10:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":195
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL
+ *         c_next = c_next.prev             # <<<<<<<<<<<<<<
+ *     c_next = c_node.next
+ *     while c_next:
+ */
+    __pyx_t_2 = __pyx_v_c_next->prev;
+    __pyx_v_c_next = __pyx_t_2;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":196
+ *                 return NULL
+ *         c_next = c_next.prev
+ *     c_next = c_node.next             # <<<<<<<<<<<<<<
+ *     while c_next:
+ *         if _isElement(c_next):
+ */
+  __pyx_t_2 = __pyx_v_c_node->next;
+  __pyx_v_c_next = __pyx_t_2;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":197
+ *         c_next = c_next.prev
+ *     c_next = c_node.next
+ *     while c_next:             # <<<<<<<<<<<<<<
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ */
+  while (1) {
+    __pyx_t_4 = (__pyx_v_c_next != 0);
+    if (!__pyx_t_4) break;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":198
+ *     c_next = c_node.next
+ *     while c_next:
+ *         if _isElement(c_next):             # <<<<<<<<<<<<<<
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL
+ */
+    __pyx_t_4 = (_isElement(__pyx_v_c_next) != 0);
+    if (__pyx_t_4) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":199
+ *     while c_next:
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):             # <<<<<<<<<<<<<<
+ *                 return NULL
+ *         c_next = c_next.next
+ */
+      __pyx_t_4 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_next) != 0);
+      if (!__pyx_t_4) {
+        __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_next) != 0)) != 0);
+        __pyx_t_3 = __pyx_t_1;
+      } else {
+        __pyx_t_3 = __pyx_t_4;
+      }
+      if (__pyx_t_3) {
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":200
+ *         if _isElement(c_next):
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL             # <<<<<<<<<<<<<<
+ *         c_next = c_next.next
+ *     return c_node
+ */
+        __pyx_r = NULL;
+        goto __pyx_L0;
+      }
+      goto __pyx_L14;
+    }
+    __pyx_L14:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":201
+ *             if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+ *                 return NULL
+ *         c_next = c_next.next             # <<<<<<<<<<<<<<
+ *     return c_node
  * 
- * cdef int canDeallocateChildNodes(xmlNode* c_parent):
  */
-    __pyx_r = NULL;
-    goto __pyx_L0;
+    __pyx_t_2 = __pyx_v_c_next->next;
+    __pyx_v_c_next = __pyx_t_2;
   }
 
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":202
+ *                 return NULL
+ *         c_next = c_next.next
+ *     return c_node             # <<<<<<<<<<<<<<
+ * 
+ * cdef int canDeallocateChildNodes(xmlNode* c_parent):
+ */
+  __pyx_r = __pyx_v_c_node;
+  goto __pyx_L0;
+
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":167
  *     return 0
  * 
@@ -11533,8 +11683,8 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":191
- *         return NULL
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":204
+ *     return c_node
  * 
  * cdef int canDeallocateChildNodes(xmlNode* c_parent):             # <<<<<<<<<<<<<<
  *     cdef xmlNode* c_node
@@ -11549,7 +11699,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("canDeallocateChildNodes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":193
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":206
  * cdef int canDeallocateChildNodes(xmlNode* c_parent):
  *     cdef xmlNode* c_node
  *     c_node = c_parent.children             # <<<<<<<<<<<<<<
@@ -11559,7 +11709,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
   __pyx_t_1 = __pyx_v_c_parent->children;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":194
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":207
  *     cdef xmlNode* c_node
  *     c_node = c_parent.children
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_parent, c_node, 1)             # <<<<<<<<<<<<<<
@@ -11568,7 +11718,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_c_parent, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":195
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":208
  *     c_node = c_parent.children
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_parent, c_node, 1)
  *     if hasProxy(c_node):             # <<<<<<<<<<<<<<
@@ -11578,7 +11728,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
   __pyx_t_2 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":196
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":209
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_parent, c_node, 1)
  *     if hasProxy(c_node):
  *         return 0             # <<<<<<<<<<<<<<
@@ -11589,7 +11739,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":197
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":210
  *     if hasProxy(c_node):
  *         return 0
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -11598,7 +11748,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
  */
   END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":198
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":211
  *         return 0
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  *     return 1             # <<<<<<<<<<<<<<
@@ -11608,8 +11758,8 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":191
- *         return NULL
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":204
+ *     return c_node
  * 
  * cdef int canDeallocateChildNodes(xmlNode* c_parent):             # <<<<<<<<<<<<<<
  *     cdef xmlNode* c_node
@@ -11622,7 +11772,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":203
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":216
  * # fix _Document references and namespaces when a node changes documents
  * 
  * cdef void _copyParentNamespaces(xmlNode* c_from_node, xmlNode* c_to_node) nogil:             # <<<<<<<<<<<<<<
@@ -11639,7 +11789,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
   int __pyx_t_4;
   xmlNs *__pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":223
  *     cdef xmlNs* c_new_ns
  *     cdef int prefix_known
  *     c_parent = c_from_node.parent             # <<<<<<<<<<<<<<
@@ -11649,7 +11799,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
   __pyx_t_1 = __pyx_v_c_from_node->parent;
   __pyx_v_c_parent = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":224
  *     cdef int prefix_known
  *     c_parent = c_from_node.parent
  *     while c_parent and (tree._isElementOrXInclude(c_parent) or             # <<<<<<<<<<<<<<
@@ -11661,7 +11811,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
       __pyx_t_2 = (_isElementOrXInclude(__pyx_v_c_parent) != 0);
       if (!__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":212
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":225
  *     c_parent = c_from_node.parent
  *     while c_parent and (tree._isElementOrXInclude(c_parent) or
  *                         c_parent.type == tree.XML_DOCUMENT_NODE):             # <<<<<<<<<<<<<<
@@ -11679,7 +11829,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":213
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":226
  *     while c_parent and (tree._isElementOrXInclude(c_parent) or
  *                         c_parent.type == tree.XML_DOCUMENT_NODE):
  *         c_new_ns = c_parent.nsDef             # <<<<<<<<<<<<<<
@@ -11689,7 +11839,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
     __pyx_t_5 = __pyx_v_c_parent->nsDef;
     __pyx_v_c_new_ns = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":214
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":227
  *                         c_parent.type == tree.XML_DOCUMENT_NODE):
  *         c_new_ns = c_parent.nsDef
  *         while c_new_ns:             # <<<<<<<<<<<<<<
@@ -11700,7 +11850,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
       __pyx_t_2 = (__pyx_v_c_new_ns != 0);
       if (!__pyx_t_2) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":216
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":229
  *         while c_new_ns:
  *             # libxml2 will check if the prefix is already defined
  *             tree.xmlNewNs(c_to_node, c_new_ns.href, c_new_ns.prefix)             # <<<<<<<<<<<<<<
@@ -11709,7 +11859,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
  */
       xmlNewNs(__pyx_v_c_to_node, __pyx_v_c_new_ns->href, __pyx_v_c_new_ns->prefix);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":217
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":230
  *             # libxml2 will check if the prefix is already defined
  *             tree.xmlNewNs(c_to_node, c_new_ns.href, c_new_ns.prefix)
  *             c_new_ns = c_new_ns.next             # <<<<<<<<<<<<<<
@@ -11720,7 +11870,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
       __pyx_v_c_new_ns = __pyx_t_5;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":218
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":231
  *             tree.xmlNewNs(c_to_node, c_new_ns.href, c_new_ns.prefix)
  *             c_new_ns = c_new_ns.next
  *         c_parent = c_parent.parent             # <<<<<<<<<<<<<<
@@ -11731,7 +11881,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
     __pyx_v_c_parent = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":203
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":216
  * # fix _Document references and namespaces when a node changes documents
  * 
  * cdef void _copyParentNamespaces(xmlNode* c_from_node, xmlNode* c_to_node) nogil:             # <<<<<<<<<<<<<<
@@ -11742,7 +11892,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":226
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":239
  *     size_t last
  * 
  * cdef int _growNsCache(_nscache* c_ns_cache) except -1:             # <<<<<<<<<<<<<<
@@ -11760,7 +11910,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_growNsCache", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":241
  * cdef int _growNsCache(_nscache* c_ns_cache) except -1:
  *     cdef xmlNs** c_ns_ptr
  *     if c_ns_cache.size == 0:             # <<<<<<<<<<<<<<
@@ -11770,7 +11920,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   __pyx_t_1 = ((__pyx_v_c_ns_cache->size == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":229
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":242
  *     cdef xmlNs** c_ns_ptr
  *     if c_ns_cache.size == 0:
  *         c_ns_cache.size = 20             # <<<<<<<<<<<<<<
@@ -11782,7 +11932,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":231
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":244
  *         c_ns_cache.size = 20
  *     else:
  *         c_ns_cache.size *= 2             # <<<<<<<<<<<<<<
@@ -11793,7 +11943,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":232
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":245
  *     else:
  *         c_ns_cache.size *= 2
  *     c_ns_ptr = <xmlNs**> stdlib.realloc(             # <<<<<<<<<<<<<<
@@ -11802,7 +11952,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  */
   __pyx_v_c_ns_ptr = ((xmlNs **)realloc(__pyx_v_c_ns_cache->new, (__pyx_v_c_ns_cache->size * (sizeof(xmlNs *)))));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":234
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":247
  *     c_ns_ptr = <xmlNs**> stdlib.realloc(
  *         c_ns_cache.new, c_ns_cache.size * sizeof(xmlNs*))
  *     if c_ns_ptr is not NULL:             # <<<<<<<<<<<<<<
@@ -11812,7 +11962,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   __pyx_t_1 = ((__pyx_v_c_ns_ptr != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":235
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":248
  *         c_ns_cache.new, c_ns_cache.size * sizeof(xmlNs*))
  *     if c_ns_ptr is not NULL:
  *         c_ns_cache.new = c_ns_ptr             # <<<<<<<<<<<<<<
@@ -11821,7 +11971,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  */
     __pyx_v_c_ns_cache->new = __pyx_v_c_ns_ptr;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":236
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":249
  *     if c_ns_ptr is not NULL:
  *         c_ns_cache.new = c_ns_ptr
  *         c_ns_ptr = <xmlNs**> stdlib.realloc(             # <<<<<<<<<<<<<<
@@ -11833,7 +11983,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":238
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":251
  *         c_ns_ptr = <xmlNs**> stdlib.realloc(
  *             c_ns_cache.old, c_ns_cache.size * sizeof(xmlNs*))
  *     if c_ns_ptr is not NULL:             # <<<<<<<<<<<<<<
@@ -11843,7 +11993,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   __pyx_t_1 = ((__pyx_v_c_ns_ptr != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":239
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":252
  *             c_ns_cache.old, c_ns_cache.size * sizeof(xmlNs*))
  *     if c_ns_ptr is not NULL:
  *         c_ns_cache.old = c_ns_ptr             # <<<<<<<<<<<<<<
@@ -11855,7 +12005,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":241
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":254
  *         c_ns_cache.old = c_ns_ptr
  *     else:
  *         stdlib.free(c_ns_cache.new)             # <<<<<<<<<<<<<<
@@ -11864,7 +12014,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  */
     free(__pyx_v_c_ns_cache->new);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":255
  *     else:
  *         stdlib.free(c_ns_cache.new)
  *         stdlib.free(c_ns_cache.old)             # <<<<<<<<<<<<<<
@@ -11873,18 +12023,18 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  */
     free(__pyx_v_c_ns_cache->old);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":243
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":256
  *         stdlib.free(c_ns_cache.new)
  *         stdlib.free(c_ns_cache.old)
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     return 0
  * 
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":244
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":257
  *         stdlib.free(c_ns_cache.old)
  *         raise MemoryError()
  *     return 0             # <<<<<<<<<<<<<<
@@ -11894,7 +12044,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":226
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":239
  *     size_t last
  * 
  * cdef int _growNsCache(_nscache* c_ns_cache) except -1:             # <<<<<<<<<<<<<<
@@ -11911,7 +12061,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":246
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":259
  *     return 0
  * 
  * cdef inline int _appendToNsCache(_nscache* c_ns_cache,             # <<<<<<<<<<<<<<
@@ -11929,7 +12079,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_appendToNsCache", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":248
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":261
  * cdef inline int _appendToNsCache(_nscache* c_ns_cache,
  *                                  xmlNs* c_old_ns, xmlNs* c_new_ns) except -1:
  *     if c_ns_cache.last >= c_ns_cache.size:             # <<<<<<<<<<<<<<
@@ -11939,19 +12089,19 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
   __pyx_t_1 = ((__pyx_v_c_ns_cache->last >= __pyx_v_c_ns_cache->size) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":249
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":262
  *                                  xmlNs* c_old_ns, xmlNs* c_new_ns) except -1:
  *     if c_ns_cache.last >= c_ns_cache.size:
  *         _growNsCache(c_ns_cache)             # <<<<<<<<<<<<<<
  *     c_ns_cache.old[c_ns_cache.last] = c_old_ns
  *     c_ns_cache.new[c_ns_cache.last] = c_new_ns
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__growNsCache(__pyx_v_c_ns_cache); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__growNsCache(__pyx_v_c_ns_cache); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":250
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":263
  *     if c_ns_cache.last >= c_ns_cache.size:
  *         _growNsCache(c_ns_cache)
  *     c_ns_cache.old[c_ns_cache.last] = c_old_ns             # <<<<<<<<<<<<<<
@@ -11960,7 +12110,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
  */
   (__pyx_v_c_ns_cache->old[__pyx_v_c_ns_cache->last]) = __pyx_v_c_old_ns;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":264
  *         _growNsCache(c_ns_cache)
  *     c_ns_cache.old[c_ns_cache.last] = c_old_ns
  *     c_ns_cache.new[c_ns_cache.last] = c_new_ns             # <<<<<<<<<<<<<<
@@ -11969,7 +12119,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
  */
   (__pyx_v_c_ns_cache->new[__pyx_v_c_ns_cache->last]) = __pyx_v_c_new_ns;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":265
  *     c_ns_cache.old[c_ns_cache.last] = c_old_ns
  *     c_ns_cache.new[c_ns_cache.last] = c_new_ns
  *     c_ns_cache.last += 1             # <<<<<<<<<<<<<<
@@ -11978,7 +12128,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
  */
   __pyx_v_c_ns_cache->last = (__pyx_v_c_ns_cache->last + 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":246
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":259
  *     return 0
  * 
  * cdef inline int _appendToNsCache(_nscache* c_ns_cache,             # <<<<<<<<<<<<<<
@@ -11997,7 +12147,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":254
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":267
  *     c_ns_cache.last += 1
  * 
  * cdef int _stripRedundantNamespaceDeclarations(             # <<<<<<<<<<<<<<
@@ -12019,7 +12169,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_stripRedundantNamespaceDeclarations", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":277
  *     cdef xmlNs** c_nsdef
  *     # use a xmlNs** to handle assignments to "c_element.nsDef" correctly
  *     c_nsdef = &c_element.nsDef             # <<<<<<<<<<<<<<
@@ -12028,7 +12178,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  */
   __pyx_v_c_nsdef = (&__pyx_v_c_element->nsDef);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":278
  *     # use a xmlNs** to handle assignments to "c_element.nsDef" correctly
  *     c_nsdef = &c_element.nsDef
  *     while c_nsdef[0] is not NULL:             # <<<<<<<<<<<<<<
@@ -12039,7 +12189,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
     __pyx_t_1 = (((__pyx_v_c_nsdef[0]) != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":266
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":279
  *     c_nsdef = &c_element.nsDef
  *     while c_nsdef[0] is not NULL:
  *         c_ns = tree.xmlSearchNsByHref(             # <<<<<<<<<<<<<<
@@ -12048,7 +12198,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  */
     __pyx_v_c_ns = xmlSearchNsByHref(__pyx_v_c_element->doc, __pyx_v_c_element->parent, (__pyx_v_c_nsdef[0])->href);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":268
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":281
  *         c_ns = tree.xmlSearchNsByHref(
  *             c_element.doc, c_element.parent, c_nsdef[0].href)
  *         if c_ns is NULL:             # <<<<<<<<<<<<<<
@@ -12058,16 +12208,16 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
     __pyx_t_1 = ((__pyx_v_c_ns == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":270
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":283
  *         if c_ns is NULL:
  *             # new namespace href => keep and cache the ns declaration
  *             _appendToNsCache(c_ns_cache, c_nsdef[0], c_nsdef[0])             # <<<<<<<<<<<<<<
  *             c_nsdef = &c_nsdef[0].next
  *         else:
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, (__pyx_v_c_nsdef[0]), (__pyx_v_c_nsdef[0])); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, (__pyx_v_c_nsdef[0]), (__pyx_v_c_nsdef[0])); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":271
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":284
  *             # new namespace href => keep and cache the ns declaration
  *             _appendToNsCache(c_ns_cache, c_nsdef[0], c_nsdef[0])
  *             c_nsdef = &c_nsdef[0].next             # <<<<<<<<<<<<<<
@@ -12079,16 +12229,16 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":274
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":287
  *         else:
  *             # known namespace href => cache mapping and strip old ns
  *             _appendToNsCache(c_ns_cache, c_nsdef[0], c_ns)             # <<<<<<<<<<<<<<
  *             # cut out c_nsdef.next and prepend it to garbage chain
  *             c_ns_next = c_nsdef[0].next
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, (__pyx_v_c_nsdef[0]), __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, (__pyx_v_c_nsdef[0]), __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":276
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":289
  *             _appendToNsCache(c_ns_cache, c_nsdef[0], c_ns)
  *             # cut out c_nsdef.next and prepend it to garbage chain
  *             c_ns_next = c_nsdef[0].next             # <<<<<<<<<<<<<<
@@ -12098,7 +12248,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
       __pyx_t_3 = (__pyx_v_c_nsdef[0])->next;
       __pyx_v_c_ns_next = __pyx_t_3;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":277
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":290
  *             # cut out c_nsdef.next and prepend it to garbage chain
  *             c_ns_next = c_nsdef[0].next
  *             c_nsdef[0].next = c_del_ns_list[0]             # <<<<<<<<<<<<<<
@@ -12107,7 +12257,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  */
       (__pyx_v_c_nsdef[0])->next = (__pyx_v_c_del_ns_list[0]);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":278
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":291
  *             c_ns_next = c_nsdef[0].next
  *             c_nsdef[0].next = c_del_ns_list[0]
  *             c_del_ns_list[0] = c_nsdef[0]             # <<<<<<<<<<<<<<
@@ -12116,7 +12266,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  */
       (__pyx_v_c_del_ns_list[0]) = (__pyx_v_c_nsdef[0]);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":279
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":292
  *             c_nsdef[0].next = c_del_ns_list[0]
  *             c_del_ns_list[0] = c_nsdef[0]
  *             c_nsdef[0] = c_ns_next             # <<<<<<<<<<<<<<
@@ -12128,7 +12278,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
     __pyx_L5:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":280
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":293
  *             c_del_ns_list[0] = c_nsdef[0]
  *             c_nsdef[0] = c_ns_next
  *     return 0             # <<<<<<<<<<<<<<
@@ -12138,7 +12288,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":267
  *     c_ns_cache.last += 1
  * 
  * cdef int _stripRedundantNamespaceDeclarations(             # <<<<<<<<<<<<<<
@@ -12155,7 +12305,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":282
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":295
  *     return 0
  * 
  * cdef int moveNodeToDocument(_Document doc, xmlDoc* c_source_doc,             # <<<<<<<<<<<<<<
@@ -12188,7 +12338,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("moveNodeToDocument", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":334
  *     cdef xmlNs* c_nsdef
  *     cdef xmlNs* c_del_ns_list
  *     cdef size_t i, proxy_count = 0             # <<<<<<<<<<<<<<
@@ -12197,7 +12347,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_proxy_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":323
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":336
  *     cdef size_t i, proxy_count = 0
  * 
  *     if not tree._isElementOrXInclude(c_element):             # <<<<<<<<<<<<<<
@@ -12207,7 +12357,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_1 = ((!(_isElementOrXInclude(__pyx_v_c_element) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":324
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":337
  * 
  *     if not tree._isElementOrXInclude(c_element):
  *         return 0             # <<<<<<<<<<<<<<
@@ -12218,7 +12368,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":326
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":339
  *         return 0
  * 
  *     c_start_node = c_element             # <<<<<<<<<<<<<<
@@ -12227,7 +12377,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_start_node = __pyx_v_c_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":327
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":340
  * 
  *     c_start_node = c_element
  *     c_del_ns_list = NULL             # <<<<<<<<<<<<<<
@@ -12236,7 +12386,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_del_ns_list = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":329
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":342
  *     c_del_ns_list = NULL
  * 
  *     c_ns_cache.new = NULL             # <<<<<<<<<<<<<<
@@ -12245,7 +12395,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_ns_cache.new = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":343
  * 
  *     c_ns_cache.new = NULL
  *     c_ns_cache.old = NULL             # <<<<<<<<<<<<<<
@@ -12254,7 +12404,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_ns_cache.old = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":331
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":344
  *     c_ns_cache.new = NULL
  *     c_ns_cache.old = NULL
  *     c_ns_cache.size = 0             # <<<<<<<<<<<<<<
@@ -12263,7 +12413,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_ns_cache.size = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":332
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":345
  *     c_ns_cache.old = NULL
  *     c_ns_cache.size = 0
  *     c_ns_cache.last = 0             # <<<<<<<<<<<<<<
@@ -12272,7 +12422,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   __pyx_v_c_ns_cache.last = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":334
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":347
  *     c_ns_cache.last = 0
  * 
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)             # <<<<<<<<<<<<<<
@@ -12281,7 +12431,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_element, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":335
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":348
  * 
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
  *     if tree._isElementOrXInclude(c_element):             # <<<<<<<<<<<<<<
@@ -12291,7 +12441,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_1 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":336
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":349
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
  *     if tree._isElementOrXInclude(c_element):
  *         if hasProxy(c_element):             # <<<<<<<<<<<<<<
@@ -12301,7 +12451,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_element) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":337
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":350
  *     if tree._isElementOrXInclude(c_element):
  *         if hasProxy(c_element):
  *             proxy_count += 1             # <<<<<<<<<<<<<<
@@ -12313,7 +12463,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":341
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":354
  *         # 1) cut out namespaces defined here that are already known by
  *         #    the ancestors
  *         if c_element.nsDef is not NULL:             # <<<<<<<<<<<<<<
@@ -12323,19 +12473,19 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     __pyx_t_1 = ((__pyx_v_c_element->nsDef != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":342
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":355
  *         #    the ancestors
  *         if c_element.nsDef is not NULL:
  *             _stripRedundantNamespaceDeclarations(             # <<<<<<<<<<<<<<
  *                 c_element, &c_ns_cache, &c_del_ns_list)
  * 
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(__pyx_v_c_element, (&__pyx_v_c_ns_cache), (&__pyx_v_c_del_ns_list)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(__pyx_v_c_element, (&__pyx_v_c_ns_cache), (&__pyx_v_c_del_ns_list)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":347
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":360
  *         # 2) make sure the namespaces of an element and its attributes
  *         #    are declared in this document (i.e. on the node or its parents)
  *         c_node = c_element             # <<<<<<<<<<<<<<
@@ -12344,7 +12494,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
     __pyx_v_c_node = __pyx_v_c_element;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":348
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":361
  *         #    are declared in this document (i.e. on the node or its parents)
  *         c_node = c_element
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -12355,7 +12505,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_1) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":349
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":362
  *         c_node = c_element
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -12365,7 +12515,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       __pyx_t_1 = ((__pyx_v_c_node->ns != NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":350
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":363
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:
  *                 c_ns = NULL             # <<<<<<<<<<<<<<
@@ -12374,7 +12524,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
         __pyx_v_c_ns = NULL;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":351
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":364
  *             if c_node.ns is not NULL:
  *                 c_ns = NULL
  *                 for i in range(c_ns_cache.last):             # <<<<<<<<<<<<<<
@@ -12385,7 +12535,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
         for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
           __pyx_v_i = __pyx_t_4;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":352
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":365
  *                 c_ns = NULL
  *                 for i in range(c_ns_cache.last):
  *                     if c_node.ns is c_ns_cache.old[i]:             # <<<<<<<<<<<<<<
@@ -12395,7 +12545,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
           __pyx_t_1 = ((__pyx_v_c_node->ns == (__pyx_v_c_ns_cache.old[__pyx_v_i])) != 0);
           if (__pyx_t_1) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":353
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":366
  *                 for i in range(c_ns_cache.last):
  *                     if c_node.ns is c_ns_cache.old[i]:
  *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE             # <<<<<<<<<<<<<<
@@ -12405,7 +12555,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
             __pyx_t_1 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
             if (__pyx_t_1) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":354
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":367
  *                     if c_node.ns is c_ns_cache.old[i]:
  *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
  *                                 and c_node.ns.prefix             # <<<<<<<<<<<<<<
@@ -12414,7 +12564,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
               if ((__pyx_v_c_node->ns->prefix != 0)) {
 
-                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":355
+                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":368
  *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
  *                                 and c_node.ns.prefix
  *                                 and not c_ns_cache.new[i].prefix):             # <<<<<<<<<<<<<<
@@ -12432,7 +12582,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
             }
             if (__pyx_t_5) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":357
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":370
  *                                 and not c_ns_cache.new[i].prefix):
  *                             # avoid dropping prefix from attributes
  *                             continue             # <<<<<<<<<<<<<<
@@ -12442,7 +12592,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
               goto __pyx_L10_continue;
             }
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":358
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":371
  *                             # avoid dropping prefix from attributes
  *                             continue
  *                         c_ns = c_ns_cache.new[i]             # <<<<<<<<<<<<<<
@@ -12451,7 +12601,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
             __pyx_v_c_ns = (__pyx_v_c_ns_cache.new[__pyx_v_i]);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":359
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":372
  *                             continue
  *                         c_ns = c_ns_cache.new[i]
  *                         break             # <<<<<<<<<<<<<<
@@ -12464,7 +12614,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
         }
         __pyx_L11_break:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":361
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":374
  *                         break
  * 
  *                 if not c_ns:             # <<<<<<<<<<<<<<
@@ -12474,29 +12624,29 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
         __pyx_t_5 = ((!(__pyx_v_c_ns != 0)) != 0);
         if (__pyx_t_5) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":364
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":377
  *                     # not in cache or not acceptable
  *                     # => find a replacement from this document
  *                     c_ns = doc._findOrBuildNodeNs(             # <<<<<<<<<<<<<<
  *                         c_start_node, c_node.ns.href, c_node.ns.prefix,
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)
  */
-          __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_v_c_ns = __pyx_t_7;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":367
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":380
  *                         c_start_node, c_node.ns.href, c_node.ns.prefix,
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)
  *                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)             # <<<<<<<<<<<<<<
  *                 c_node.ns = c_ns
  * 
  */
-          __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache((&__pyx_v_c_ns_cache), __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache((&__pyx_v_c_ns_cache), __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L14;
         }
         __pyx_L14:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":368
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":381
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)
  *                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)
  *                 c_node.ns = c_ns             # <<<<<<<<<<<<<<
@@ -12508,7 +12658,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       }
       __pyx_L9:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":370
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":383
  *                 c_node.ns = c_ns
  * 
  *             if c_node is c_element:             # <<<<<<<<<<<<<<
@@ -12518,7 +12668,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       __pyx_t_5 = ((__pyx_v_c_node == __pyx_v_c_element) != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":372
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":385
  *             if c_node is c_element:
  *                 # after the element, continue with its attributes
  *                 c_node = <xmlNode*>c_element.properties             # <<<<<<<<<<<<<<
@@ -12530,7 +12680,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":374
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":387
  *                 c_node = <xmlNode*>c_element.properties
  *             else:
  *                 c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -12546,7 +12696,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":375
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":388
  *             else:
  *                 c_node = c_node.next
  *     tree.END_FOR_EACH_FROM(c_element)             # <<<<<<<<<<<<<<
@@ -12555,7 +12705,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   END_FOR_EACH_FROM(__pyx_v_c_element);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":378
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":391
  * 
  *     # free now unused namespace declarations
  *     if c_del_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -12565,7 +12715,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_5 = ((__pyx_v_c_del_ns_list != NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":379
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":392
  *     # free now unused namespace declarations
  *     if c_del_ns_list is not NULL:
  *         tree.xmlFreeNsList(c_del_ns_list)             # <<<<<<<<<<<<<<
@@ -12577,7 +12727,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L16:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":382
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":395
  * 
  *     # cleanup
  *     if c_ns_cache.new is not NULL:             # <<<<<<<<<<<<<<
@@ -12587,7 +12737,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_5 = ((__pyx_v_c_ns_cache.new != NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":383
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":396
  *     # cleanup
  *     if c_ns_cache.new is not NULL:
  *         stdlib.free(c_ns_cache.new)             # <<<<<<<<<<<<<<
@@ -12599,7 +12749,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L17:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":384
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":397
  *     if c_ns_cache.new is not NULL:
  *         stdlib.free(c_ns_cache.new)
  *     if c_ns_cache.old is not NULL:             # <<<<<<<<<<<<<<
@@ -12609,7 +12759,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_5 = ((__pyx_v_c_ns_cache.old != NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":385
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":398
  *         stdlib.free(c_ns_cache.new)
  *     if c_ns_cache.old is not NULL:
  *         stdlib.free(c_ns_cache.old)             # <<<<<<<<<<<<<<
@@ -12621,7 +12771,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L18:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":401
  * 
  *     # 3) fix the names in the tree if we moved it from a different thread
  *     if doc._c_doc.dict is not c_source_doc.dict:             # <<<<<<<<<<<<<<
@@ -12631,7 +12781,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_5 = ((__pyx_v_doc->_c_doc->dict != __pyx_v_c_source_doc->dict) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":389
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":402
  *     # 3) fix the names in the tree if we moved it from a different thread
  *     if doc._c_doc.dict is not c_source_doc.dict:
  *         fixThreadDictNames(c_start_node, c_source_doc.dict, doc._c_doc.dict)             # <<<<<<<<<<<<<<
@@ -12643,7 +12793,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L19:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":393
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":406
  *     # 4) fix _Document references
  *     #    (and potentially deallocate the source document)
  *     if proxy_count > 0:             # <<<<<<<<<<<<<<
@@ -12653,7 +12803,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_t_5 = ((__pyx_v_proxy_count > 0) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":394
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":407
  *     #    (and potentially deallocate the source document)
  *     if proxy_count > 0:
  *         if proxy_count == 1 and c_start_node._private is not NULL:             # <<<<<<<<<<<<<<
@@ -12669,19 +12819,19 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     }
     if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":395
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":408
  *     if proxy_count > 0:
  *         if proxy_count == 1 and c_start_node._private is not NULL:
  *             proxy = getProxy(c_start_node)             # <<<<<<<<<<<<<<
  *             if proxy is not None:
  *                 if proxy._doc is not doc:
  */
-      __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __pyx_v_proxy = ((struct LxmlElement *)__pyx_t_9);
       __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":396
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":409
  *         if proxy_count == 1 and c_start_node._private is not NULL:
  *             proxy = getProxy(c_start_node)
  *             if proxy is not None:             # <<<<<<<<<<<<<<
@@ -12692,7 +12842,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       __pyx_t_5 = (__pyx_t_6 != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":397
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":410
  *             proxy = getProxy(c_start_node)
  *             if proxy is not None:
  *                 if proxy._doc is not doc:             # <<<<<<<<<<<<<<
@@ -12703,7 +12853,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
         __pyx_t_6 = (__pyx_t_5 != 0);
         if (__pyx_t_6) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":398
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":411
  *             if proxy is not None:
  *                 if proxy._doc is not doc:
  *                     proxy._doc = doc             # <<<<<<<<<<<<<<
@@ -12722,7 +12872,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":400
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":413
  *                     proxy._doc = doc
  *             else:
  *                 fixElementDocument(c_start_node, doc, proxy_count)             # <<<<<<<<<<<<<<
@@ -12736,7 +12886,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":402
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":415
  *                 fixElementDocument(c_start_node, doc, proxy_count)
  *         else:
  *             fixElementDocument(c_start_node, doc, proxy_count)             # <<<<<<<<<<<<<<
@@ -12750,7 +12900,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   }
   __pyx_L20:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":404
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":417
  *             fixElementDocument(c_start_node, doc, proxy_count)
  * 
  *     return 0             # <<<<<<<<<<<<<<
@@ -12760,7 +12910,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":282
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":295
  *     return 0
  * 
  * cdef int moveNodeToDocument(_Document doc, xmlDoc* c_source_doc,             # <<<<<<<<<<<<<<
@@ -12779,7 +12929,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":407
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":420
  * 
  * 
  * cdef void fixElementDocument(xmlNode* c_element, _Document doc,             # <<<<<<<<<<<<<<
@@ -12799,7 +12949,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("fixElementDocument", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":409
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":422
  * cdef void fixElementDocument(xmlNode* c_element, _Document doc,
  *                              size_t proxy_count):
  *     cdef xmlNode* c_node = c_element             # <<<<<<<<<<<<<<
@@ -12808,7 +12958,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
   __pyx_v_c_node = __pyx_v_c_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":410
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":423
  *                              size_t proxy_count):
  *     cdef xmlNode* c_node = c_element
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below             # <<<<<<<<<<<<<<
@@ -12818,7 +12968,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __Pyx_INCREF(Py_None);
   __pyx_v_proxy = ((struct LxmlElement *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":411
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":424
  *     cdef xmlNode* c_node = c_element
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)             # <<<<<<<<<<<<<<
@@ -12827,7 +12977,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
   BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":412
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":425
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node._private is not NULL:             # <<<<<<<<<<<<<<
@@ -12837,19 +12987,19 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __pyx_t_1 = ((__pyx_v_c_node->_private != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":413
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":426
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node._private is not NULL:
  *         proxy = getProxy(c_node)             # <<<<<<<<<<<<<<
  *         if proxy is not None:
  *             if proxy._doc is not doc:
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF_SET(__pyx_v_proxy, ((struct LxmlElement *)__pyx_t_2));
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":414
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":427
  *     if c_node._private is not NULL:
  *         proxy = getProxy(c_node)
  *         if proxy is not None:             # <<<<<<<<<<<<<<
@@ -12860,7 +13010,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":415
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":428
  *         proxy = getProxy(c_node)
  *         if proxy is not None:
  *             if proxy._doc is not doc:             # <<<<<<<<<<<<<<
@@ -12871,7 +13021,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
       __pyx_t_1 = (__pyx_t_3 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":416
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":429
  *         if proxy is not None:
  *             if proxy._doc is not doc:
  *                 proxy._doc = doc             # <<<<<<<<<<<<<<
@@ -12887,7 +13037,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
       }
       __pyx_L5:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":417
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":430
  *             if proxy._doc is not doc:
  *                 proxy._doc = doc
  *             proxy_count -= 1             # <<<<<<<<<<<<<<
@@ -12896,7 +13046,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
       __pyx_v_proxy_count = (__pyx_v_proxy_count - 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":418
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":431
  *                 proxy._doc = doc
  *             proxy_count -= 1
  *             if proxy_count == 0:             # <<<<<<<<<<<<<<
@@ -12906,7 +13056,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
       __pyx_t_1 = ((__pyx_v_proxy_count == 0) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":419
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":432
  *             proxy_count -= 1
  *             if proxy_count == 0:
  *                 return             # <<<<<<<<<<<<<<
@@ -12922,7 +13072,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":420
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":433
  *             if proxy_count == 0:
  *                 return
  *     tree.END_FOR_EACH_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -12931,7 +13081,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
   END_FOR_EACH_FROM(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":407
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":420
  * 
  * 
  * cdef void fixElementDocument(xmlNode* c_element, _Document doc,             # <<<<<<<<<<<<<<
@@ -12949,7 +13099,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":422
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":435
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef void fixThreadDictNames(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -12961,7 +13111,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":429
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":442
  *     # this should only be called when the element is based on a
  *     # different libxml2 tag name dictionary
  *     if c_element.type == tree.XML_DOCUMENT_NODE or \             # <<<<<<<<<<<<<<
@@ -12971,7 +13121,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   switch (__pyx_v_c_element->type) {
     case XML_DOCUMENT_NODE:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":430
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":443
  *     # different libxml2 tag name dictionary
  *     if c_element.type == tree.XML_DOCUMENT_NODE or \
  *             c_element.type == tree.XML_HTML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -12980,7 +13130,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  */
     case XML_HTML_DOCUMENT_NODE:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":429
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":442
  *     # this should only be called when the element is based on a
  *     # different libxml2 tag name dictionary
  *     if c_element.type == tree.XML_DOCUMENT_NODE or \             # <<<<<<<<<<<<<<
@@ -12995,7 +13145,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":432
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":445
  *             c_element.type == tree.XML_HTML_DOCUMENT_NODE:
  *         # may define "xml" namespace
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13004,7 +13154,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  */
     __pyx_f_4lxml_5etree_fixThreadDictNsForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":433
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":446
  *         # may define "xml" namespace
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
  *         c_element = c_element.children             # <<<<<<<<<<<<<<
@@ -13014,7 +13164,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
     __pyx_t_2 = __pyx_v_c_element->children;
     __pyx_v_c_element = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":434
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":447
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
  *         c_element = c_element.children
  *         while c_element is not NULL:             # <<<<<<<<<<<<<<
@@ -13025,7 +13175,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
       __pyx_t_1 = ((__pyx_v_c_element != NULL) != 0);
       if (!__pyx_t_1) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":435
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":448
  *         c_element = c_element.children
  *         while c_element is not NULL:
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13034,7 +13184,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  */
       __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":436
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":449
  *         while c_element is not NULL:
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  *             c_element = c_element.next             # <<<<<<<<<<<<<<
@@ -13047,7 +13197,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":437
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":450
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  *             c_element = c_element.next
  *     elif tree._isElementOrXInclude(c_element):             # <<<<<<<<<<<<<<
@@ -13057,7 +13207,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   __pyx_t_1 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":438
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":451
  *             c_element = c_element.next
  *     elif tree._isElementOrXInclude(c_element):
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13069,7 +13219,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":422
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":435
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef void fixThreadDictNames(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -13080,7 +13230,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":440
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":453
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  * 
  * cdef void fixThreadDictNamesForNode(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -13092,7 +13242,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   xmlNode *__pyx_v_c_node;
   int __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":443
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":456
  *                                     tree.xmlDict* c_src_dict,
  *                                     tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_node = c_element             # <<<<<<<<<<<<<<
@@ -13101,7 +13251,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   __pyx_v_c_node = __pyx_v_c_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":444
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":457
  *                                     tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_node = c_element
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)             # <<<<<<<<<<<<<<
@@ -13110,7 +13260,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":445
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":458
  *     cdef xmlNode* c_node = c_element
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node.name is not NULL:             # <<<<<<<<<<<<<<
@@ -13120,7 +13270,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   __pyx_t_1 = ((__pyx_v_c_node->name != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":446
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":459
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node.name is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13132,7 +13282,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":451
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":464
  *             c_node.properties, c_src_dict, c_dict)
  *         fixThreadDictNsForNode(c_node, c_src_dict, c_dict)
  *     elif c_node.type == tree.XML_TEXT_NODE:             # <<<<<<<<<<<<<<
@@ -13141,7 +13291,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   switch (__pyx_v_c_node->type) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":447
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":460
  *     if c_node.name is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *     if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):             # <<<<<<<<<<<<<<
@@ -13151,7 +13301,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
     case XML_ELEMENT_NODE:
     case XML_XINCLUDE_START:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":448
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":461
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *     if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):
  *         fixThreadDictNamesForAttributes(             # <<<<<<<<<<<<<<
@@ -13160,7 +13310,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
     __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(__pyx_v_c_node->properties, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":450
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":463
  *         fixThreadDictNamesForAttributes(
  *             c_node.properties, c_src_dict, c_dict)
  *         fixThreadDictNsForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13170,7 +13320,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
     __pyx_f_4lxml_5etree_fixThreadDictNsForNode(__pyx_v_c_node, __pyx_v_c_src_dict, __pyx_v_c_dict);
     break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":451
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":464
  *             c_node.properties, c_src_dict, c_dict)
  *         fixThreadDictNsForNode(c_node, c_src_dict, c_dict)
  *     elif c_node.type == tree.XML_TEXT_NODE:             # <<<<<<<<<<<<<<
@@ -13179,7 +13329,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
     case XML_TEXT_NODE:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":453
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":466
  *     elif c_node.type == tree.XML_TEXT_NODE:
  *         # libxml2's SAX2 parser interns some indentation space
  *         fixThreadDictContentForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13191,7 +13341,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
     default: break;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":454
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":467
  *         # libxml2's SAX2 parser interns some indentation space
  *         fixThreadDictContentForNode(c_node, c_src_dict, c_dict)
  *     tree.END_FOR_EACH_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -13200,7 +13350,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   END_FOR_EACH_FROM(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":440
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":453
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  * 
  * cdef void fixThreadDictNamesForNode(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -13211,7 +13361,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":456
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":469
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef inline void fixThreadDictNamesForAttributes(tree.xmlAttr* c_attr,             # <<<<<<<<<<<<<<
@@ -13225,7 +13375,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":460
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":473
  *                                                  tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_child
  *     cdef xmlNode* c_node = <xmlNode*>c_attr             # <<<<<<<<<<<<<<
@@ -13234,7 +13384,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
   __pyx_v_c_node = ((xmlNode *)__pyx_v_c_attr);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":461
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":474
  *     cdef xmlNode* c_child
  *     cdef xmlNode* c_node = <xmlNode*>c_attr
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -13245,7 +13395,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":462
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":475
  *     cdef xmlNode* c_node = <xmlNode*>c_attr
  *     while c_node is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13254,7 +13404,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
     __pyx_f_4lxml_5etree_fixThreadDictNameForNode(__pyx_v_c_node, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":464
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":477
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *         # libxml2 keeps some (!) attribute values in the dict
  *         c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -13264,7 +13414,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
     __pyx_t_2 = __pyx_v_c_node->children;
     __pyx_v_c_child = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":465
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":478
  *         # libxml2 keeps some (!) attribute values in the dict
  *         c_child = c_node.children
  *         while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -13275,7 +13425,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
       __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":466
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":479
  *         c_child = c_node.children
  *         while c_child is not NULL:
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -13284,7 +13434,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
       __pyx_f_4lxml_5etree_fixThreadDictContentForNode(__pyx_v_c_child, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":467
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":480
  *         while c_child is not NULL:
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
  *             c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -13295,7 +13445,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":468
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":481
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
  *             c_child = c_child.next
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -13306,7 +13456,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":456
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":469
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef inline void fixThreadDictNamesForAttributes(tree.xmlAttr* c_attr,             # <<<<<<<<<<<<<<
@@ -13317,7 +13467,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":470
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":483
  *         c_node = c_node.next
  * 
  * cdef inline void fixThreadDictNameForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -13332,7 +13482,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   int __pyx_t_3;
   int __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":473
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":486
  *                                           tree.xmlDict* c_src_dict,
  *                                           tree.xmlDict* c_dict) nogil:
  *     cdef const_xmlChar* c_name = c_node.name             # <<<<<<<<<<<<<<
@@ -13342,7 +13492,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   __pyx_t_1 = __pyx_v_c_node->name;
   __pyx_v_c_name = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":474
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":487
  *                                           tree.xmlDict* c_dict) nogil:
  *     cdef const_xmlChar* c_name = c_node.name
  *     if c_name is not NULL and \             # <<<<<<<<<<<<<<
@@ -13352,7 +13502,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   __pyx_t_2 = ((__pyx_v_c_name != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":475
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":488
  *     cdef const_xmlChar* c_name = c_node.name
  *     if c_name is not NULL and \
  *            c_node.type != tree.XML_TEXT_NODE and \             # <<<<<<<<<<<<<<
@@ -13362,7 +13512,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
     switch (__pyx_v_c_node->type) {
       case XML_TEXT_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":476
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":489
  *     if c_name is not NULL and \
  *            c_node.type != tree.XML_TEXT_NODE and \
  *            c_node.type != tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
@@ -13371,7 +13521,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
  */
       case XML_COMMENT_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":475
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":488
  *     cdef const_xmlChar* c_name = c_node.name
  *     if c_name is not NULL and \
  *            c_node.type != tree.XML_TEXT_NODE and \             # <<<<<<<<<<<<<<
@@ -13390,7 +13540,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":477
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":490
  *            c_node.type != tree.XML_TEXT_NODE and \
  *            c_node.type != tree.XML_COMMENT_NODE:
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):             # <<<<<<<<<<<<<<
@@ -13400,7 +13550,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
     __pyx_t_4 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->name) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":479
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":492
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):
  *             # c_name can be NULL on memory error, but we don't handle that here
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)             # <<<<<<<<<<<<<<
@@ -13409,7 +13559,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
  */
       __pyx_v_c_name = xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_name, -1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":480
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":493
  *             # c_name can be NULL on memory error, but we don't handle that here
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)
  *             if c_name is not NULL:             # <<<<<<<<<<<<<<
@@ -13419,7 +13569,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
       __pyx_t_4 = ((__pyx_v_c_name != NULL) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":481
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":494
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)
  *             if c_name is not NULL:
  *                 c_node.name = c_name             # <<<<<<<<<<<<<<
@@ -13437,7 +13587,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":470
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":483
  *         c_node = c_node.next
  * 
  * cdef inline void fixThreadDictNameForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -13448,7 +13598,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":483
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":496
  *                 c_node.name = c_name
  * 
  * cdef inline void fixThreadDictContentForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -13461,7 +13611,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   int __pyx_t_2;
   int __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":486
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":499
  *                                              tree.xmlDict* c_src_dict,
  *                                              tree.xmlDict* c_dict) nogil:
  *     if c_node.content is not NULL and \             # <<<<<<<<<<<<<<
@@ -13471,7 +13621,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   __pyx_t_1 = ((__pyx_v_c_node->content != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":487
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":500
  *                                              tree.xmlDict* c_dict) nogil:
  *     if c_node.content is not NULL and \
  *            c_node.content is not <xmlChar*>&c_node.properties:             # <<<<<<<<<<<<<<
@@ -13485,7 +13635,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":488
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":501
  *     if c_node.content is not NULL and \
  *            c_node.content is not <xmlChar*>&c_node.properties:
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):             # <<<<<<<<<<<<<<
@@ -13495,7 +13645,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
     __pyx_t_3 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->content) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":490
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":503
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):
  *             # result can be NULL on memory error, but we don't handle that here
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)             # <<<<<<<<<<<<<<
@@ -13510,7 +13660,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":496
  *                 c_node.name = c_name
  * 
  * cdef inline void fixThreadDictContentForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -13521,7 +13671,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   /* function exit code */
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":492
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":505
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)
  * 
  * cdef inline void fixThreadDictNsForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -13534,7 +13684,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
   xmlNs *__pyx_t_1;
   int __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":495
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":508
  *                                         tree.xmlDict* c_src_dict,
  *                                         tree.xmlDict* c_dict) nogil:
  *     cdef xmlNs* c_ns = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -13544,7 +13694,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
   __pyx_t_1 = __pyx_v_c_node->nsDef;
   __pyx_v_c_ns = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":496
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":509
  *                                         tree.xmlDict* c_dict) nogil:
  *     cdef xmlNs* c_ns = c_node.nsDef
  *     while c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -13555,7 +13705,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     __pyx_t_2 = ((__pyx_v_c_ns != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":497
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":510
  *     cdef xmlNs* c_ns = c_node.nsDef
  *     while c_ns is not NULL:
  *         if c_ns.href is not NULL:             # <<<<<<<<<<<<<<
@@ -13565,7 +13715,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     __pyx_t_2 = ((__pyx_v_c_ns->href != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":498
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":511
  *     while c_ns is not NULL:
  *         if c_ns.href is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):             # <<<<<<<<<<<<<<
@@ -13575,7 +13725,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
       __pyx_t_2 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->href) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":499
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":512
  *         if c_ns.href is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)             # <<<<<<<<<<<<<<
@@ -13590,7 +13740,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":500
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":513
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  *         if c_ns.prefix is not NULL:             # <<<<<<<<<<<<<<
@@ -13600,7 +13750,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     __pyx_t_2 = ((__pyx_v_c_ns->prefix != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":501
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":514
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  *         if c_ns.prefix is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):             # <<<<<<<<<<<<<<
@@ -13610,7 +13760,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
       __pyx_t_2 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->prefix) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":502
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":515
  *         if c_ns.prefix is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)             # <<<<<<<<<<<<<<
@@ -13624,7 +13774,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":503
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":516
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)
  *         c_ns = c_ns.next             # <<<<<<<<<<<<<<
@@ -13633,7 +13783,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     __pyx_v_c_ns = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":492
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":505
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)
  * 
  * cdef inline void fixThreadDictNsForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -14367,7 +14517,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     _assertValidNode(node)
  *     return node             # <<<<<<<<<<<<<<
  * 
- * cdef _Element _makeElement(tag, xmlDoc* c_doc, _Document doc,
+ * cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
   __Pyx_INCREF(((PyObject *)__pyx_v_node));
@@ -14398,6 +14548,88 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":77
  *     return node
  * 
+ * cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):             # <<<<<<<<<<<<<<
+ *     while c_node:
+ *         if c_node is c_ancestor:
+ */
+
+static int __pyx_f_4lxml_5etree__isAncestorOrSame(xmlNode *__pyx_v_c_ancestor, xmlNode *__pyx_v_c_node) {
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  xmlNode *__pyx_t_2;
+  __Pyx_RefNannySetupContext("_isAncestorOrSame", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":78
+ * 
+ * cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):
+ *     while c_node:             # <<<<<<<<<<<<<<
+ *         if c_node is c_ancestor:
+ *             return True
+ */
+  while (1) {
+    __pyx_t_1 = (__pyx_v_c_node != 0);
+    if (!__pyx_t_1) break;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":79
+ * cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):
+ *     while c_node:
+ *         if c_node is c_ancestor:             # <<<<<<<<<<<<<<
+ *             return True
+ *         c_node = c_node.parent
+ */
+    __pyx_t_1 = ((__pyx_v_c_node == __pyx_v_c_ancestor) != 0);
+    if (__pyx_t_1) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":80
+ *     while c_node:
+ *         if c_node is c_ancestor:
+ *             return True             # <<<<<<<<<<<<<<
+ *         c_node = c_node.parent
+ *     return False
+ */
+      __pyx_r = 1;
+      goto __pyx_L0;
+    }
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":81
+ *         if c_node is c_ancestor:
+ *             return True
+ *         c_node = c_node.parent             # <<<<<<<<<<<<<<
+ *     return False
+ * 
+ */
+    __pyx_t_2 = __pyx_v_c_node->parent;
+    __pyx_v_c_node = __pyx_t_2;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":82
+ *             return True
+ *         c_node = c_node.parent
+ *     return False             # <<<<<<<<<<<<<<
+ * 
+ * cdef _Element _makeElement(tag, xmlDoc* c_doc, _Document doc,
+ */
+  __pyx_r = 0;
+  goto __pyx_L0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":77
+ *     return node
+ * 
+ * cdef bint _isAncestorOrSame(xmlNode* c_ancestor, xmlNode* c_node):             # <<<<<<<<<<<<<<
+ *     while c_node:
+ *         if c_node is c_ancestor:
+ */
+
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":84
+ *     return False
+ * 
  * cdef _Element _makeElement(tag, xmlDoc* c_doc, _Document doc,             # <<<<<<<<<<<<<<
  *                            _BaseParser parser, text, tail, attrib, nsmap,
  *                            dict extra_attrs):
@@ -14427,7 +14659,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   __Pyx_RefNannySetupContext("_makeElement", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":95
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":102
  *     """
  *     cdef xmlNode* c_node
  *     if doc is not None:             # <<<<<<<<<<<<<<
@@ -14438,7 +14670,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":96
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":103
  *     cdef xmlNode* c_node
  *     if doc is not None:
  *         c_doc = doc._c_doc             # <<<<<<<<<<<<<<
@@ -14451,14 +14683,14 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":97
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":104
  *     if doc is not None:
  *         c_doc = doc._c_doc
  *     ns_utf, name_utf = _getNsTag(tag)             # <<<<<<<<<<<<<<
  *     if parser is not None and parser._for_html:
  *         _htmlTagValidOrRaise(name_utf)
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   if (likely(__pyx_t_4 != Py_None)) {
     PyObject* sequence = __pyx_t_4;
@@ -14470,7 +14702,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
@@ -14478,21 +14710,21 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __Pyx_INCREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_t_6);
     #else
-    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     #endif
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns_utf = __pyx_t_5;
   __pyx_t_5 = 0;
   __pyx_v_name_utf = __pyx_t_6;
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":98
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":105
  *         c_doc = doc._c_doc
  *     ns_utf, name_utf = _getNsTag(tag)
  *     if parser is not None and parser._for_html:             # <<<<<<<<<<<<<<
@@ -14507,16 +14739,16 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":99
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":106
  *     ns_utf, name_utf = _getNsTag(tag)
  *     if parser is not None and parser._for_html:
  *         _htmlTagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *         if c_doc is NULL:
  *             c_doc = _newHTMLDoc()
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":100
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":107
  *     if parser is not None and parser._for_html:
  *         _htmlTagValidOrRaise(name_utf)
  *         if c_doc is NULL:             # <<<<<<<<<<<<<<
@@ -14526,14 +14758,14 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":101
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":108
  *         _htmlTagValidOrRaise(name_utf)
  *         if c_doc is NULL:
  *             c_doc = _newHTMLDoc()             # <<<<<<<<<<<<<<
  *     else:
  *         _tagValidOrRaise(name_utf)
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_v_c_doc = __pyx_t_3;
       goto __pyx_L5;
     }
@@ -14542,16 +14774,16 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":103
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":110
  *             c_doc = _newHTMLDoc()
  *     else:
  *         _tagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *         if c_doc is NULL:
  *             c_doc = _newXMLDoc()
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":104
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":111
  *     else:
  *         _tagValidOrRaise(name_utf)
  *         if c_doc is NULL:             # <<<<<<<<<<<<<<
@@ -14561,14 +14793,14 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":105
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":112
  *         _tagValidOrRaise(name_utf)
  *         if c_doc is NULL:
  *             c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_v_c_doc = __pyx_t_3;
       goto __pyx_L6;
     }
@@ -14576,17 +14808,17 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":106
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":113
  *         if c_doc is NULL:
  *             c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)             # <<<<<<<<<<<<<<
  *     if c_node is NULL:
  *         if doc is None and c_doc is not NULL:
  */
-  __pyx_t_8 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_node = __pyx_t_8;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":107
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":114
  *             c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -14596,7 +14828,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":108
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":115
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  *         if doc is None and c_doc is not NULL:             # <<<<<<<<<<<<<<
@@ -14612,7 +14844,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     }
     if (__pyx_t_9) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":109
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":116
  *     if c_node is NULL:
  *         if doc is None and c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -14624,17 +14856,17 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":110
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":117
  *         if doc is None and c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     try:
  *         if doc is None:
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":111
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":118
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()
  *     try:             # <<<<<<<<<<<<<<
@@ -14648,7 +14880,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __Pyx_XGOTREF(__pyx_t_12);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":112
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":119
  *         raise MemoryError()
  *     try:
  *         if doc is None:             # <<<<<<<<<<<<<<
@@ -14659,7 +14891,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __pyx_t_1 = (__pyx_t_9 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":113
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":120
  *     try:
  *         if doc is None:
  *             tree.xmlDocSetRootElement(c_doc, c_node)             # <<<<<<<<<<<<<<
@@ -14668,14 +14900,14 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  */
         xmlDocSetRootElement(__pyx_v_c_doc, __pyx_v_c_node);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":114
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":121
  *         if doc is None:
  *             tree.xmlDocSetRootElement(c_doc, c_node)
  *             doc = _documentFactory(c_doc, parser)             # <<<<<<<<<<<<<<
  *         if text is not None:
  *             _setNodeText(c_node, text)
  */
-        __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
         __pyx_t_4 = 0;
@@ -14683,7 +14915,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       }
       __pyx_L17:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":115
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":122
  *             tree.xmlDocSetRootElement(c_doc, c_node)
  *             doc = _documentFactory(c_doc, parser)
  *         if text is not None:             # <<<<<<<<<<<<<<
@@ -14694,19 +14926,19 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __pyx_t_9 = (__pyx_t_1 != 0);
       if (__pyx_t_9) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":116
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":123
  *             doc = _documentFactory(c_doc, parser)
  *         if text is not None:
  *             _setNodeText(c_node, text)             # <<<<<<<<<<<<<<
  *         if tail is not None:
  *             _setTailText(c_node, tail)
  */
-        __pyx_t_7 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_c_node, __pyx_v_text); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __pyx_t_7 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_c_node, __pyx_v_text); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
         goto __pyx_L18;
       }
       __pyx_L18:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":117
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":124
  *         if text is not None:
  *             _setNodeText(c_node, text)
  *         if tail is not None:             # <<<<<<<<<<<<<<
@@ -14717,39 +14949,39 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __pyx_t_1 = (__pyx_t_9 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":118
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":125
  *             _setNodeText(c_node, text)
  *         if tail is not None:
  *             _setTailText(c_node, tail)             # <<<<<<<<<<<<<<
  *         # add namespaces to node if necessary
  *         _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  */
-        __pyx_t_7 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_c_node, __pyx_v_tail); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __pyx_t_7 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_c_node, __pyx_v_tail); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
         goto __pyx_L19;
       }
       __pyx_L19:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":120
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":127
  *             _setTailText(c_node, tail)
  *         # add namespaces to node if necessary
  *         _initNodeNamespaces(c_node, doc, ns_utf, nsmap)             # <<<<<<<<<<<<<<
  *         _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *         return _elementFactory(doc, c_node)
  */
-      __pyx_t_7 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+      __pyx_t_7 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":121
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":128
  *         # add namespaces to node if necessary
  *         _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  *         _initNodeAttributes(c_node, doc, attrib, extra_attrs)             # <<<<<<<<<<<<<<
  *         return _elementFactory(doc, c_node)
  *     except:
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":122
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":129
  *         _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  *         _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *         return _elementFactory(doc, c_node)             # <<<<<<<<<<<<<<
@@ -14757,7 +14989,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         # free allocated c_node/c_doc unless Python does it for us
  */
       __Pyx_XDECREF(((PyObject *)__pyx_r));
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_r = ((struct LxmlElement *)__pyx_t_4);
       __pyx_t_4 = 0;
@@ -14772,7 +15004,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":123
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":130
  *         _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *         return _elementFactory(doc, c_node)
  *     except:             # <<<<<<<<<<<<<<
@@ -14781,12 +15013,12 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._makeElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":125
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":132
  *     except:
  *         # free allocated c_node/c_doc unless Python does it for us
  *         if c_node.doc is not c_doc:             # <<<<<<<<<<<<<<
@@ -14796,7 +15028,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_c_doc) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":127
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":134
  *         if c_node.doc is not c_doc:
  *             # node not yet in document => will not be freed by document
  *             if tail is not None:             # <<<<<<<<<<<<<<
@@ -14807,7 +15039,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
         __pyx_t_9 = (__pyx_t_1 != 0);
         if (__pyx_t_9) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":128
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":135
  *             # node not yet in document => will not be freed by document
  *             if tail is not None:
  *                 _removeText(c_node.next) # tail             # <<<<<<<<<<<<<<
@@ -14819,7 +15051,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
         }
         __pyx_L23:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":129
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":136
  *             if tail is not None:
  *                 _removeText(c_node.next) # tail
  *             tree.xmlFreeNode(c_node)             # <<<<<<<<<<<<<<
@@ -14831,7 +15063,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       }
       __pyx_L22:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":130
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":137
  *                 _removeText(c_node.next) # tail
  *             tree.xmlFreeNode(c_node)
  *         if doc is None:             # <<<<<<<<<<<<<<
@@ -14842,7 +15074,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __pyx_t_1 = (__pyx_t_9 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":132
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":139
  *         if doc is None:
  *             # c_doc will not be freed by doc
  *             tree.xmlFreeDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -14854,7 +15086,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       }
       __pyx_L24:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":133
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":140
  *             # c_doc will not be freed by doc
  *             tree.xmlFreeDoc(c_doc)
  *         raise             # <<<<<<<<<<<<<<
@@ -14866,7 +15098,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       __Pyx_XGIVEREF(__pyx_t_5);
       __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_5);
       __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; 
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -14892,8 +15124,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __pyx_L16_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":77
- *     return node
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":84
+ *     return False
  * 
  * cdef _Element _makeElement(tag, xmlDoc* c_doc, _Document doc,             # <<<<<<<<<<<<<<
  *                            _BaseParser parser, text, tail, attrib, nsmap,
@@ -14916,7 +15148,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":135
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":142
  *         raise
  * 
  * cdef int _initNewElement(_Element element, bint is_html, name_utf, ns_utf,             # <<<<<<<<<<<<<<
@@ -14941,7 +15173,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_initNewElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":145
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":152
  *     cdef xmlNode* c_node
  *     cdef _Document doc
  *     if is_html:             # <<<<<<<<<<<<<<
@@ -14951,60 +15183,60 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   __pyx_t_1 = (__pyx_v_is_html != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":146
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":153
  *     cdef _Document doc
  *     if is_html:
  *         _htmlTagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *         c_doc = _newHTMLDoc()
  *     else:
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":147
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":154
  *     if is_html:
  *         _htmlTagValidOrRaise(name_utf)
  *         c_doc = _newHTMLDoc()             # <<<<<<<<<<<<<<
  *     else:
  *         _tagValidOrRaise(name_utf)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_doc = __pyx_t_3;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":149
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":156
  *         c_doc = _newHTMLDoc()
  *     else:
  *         _tagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *         c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":150
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":157
  *     else:
  *         _tagValidOrRaise(name_utf)
  *         c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_doc = __pyx_t_3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":151
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":158
  *         _tagValidOrRaise(name_utf)
  *         c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)             # <<<<<<<<<<<<<<
  *     if c_node is NULL:
  *         if c_doc is not NULL:
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_node = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":152
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":159
  *         c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -15014,7 +15246,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":153
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":160
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  *         if c_doc is not NULL:             # <<<<<<<<<<<<<<
@@ -15024,7 +15256,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
     __pyx_t_1 = ((__pyx_v_c_doc != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":154
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":161
  *     if c_node is NULL:
  *         if c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -15036,17 +15268,17 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":155
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":162
  *         if c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     tree.xmlDocSetRootElement(c_doc, c_node)
  *     doc = _documentFactory(c_doc, parser)
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":156
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":163
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()
  *     tree.xmlDocSetRootElement(c_doc, c_node)             # <<<<<<<<<<<<<<
@@ -15055,62 +15287,62 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  */
   xmlDocSetRootElement(__pyx_v_c_doc, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":157
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":164
  *         raise MemoryError()
  *     tree.xmlDocSetRootElement(c_doc, c_node)
  *     doc = _documentFactory(c_doc, parser)             # <<<<<<<<<<<<<<
  *     # add namespaces to node if necessary
  *     _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  */
-  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":159
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":166
  *     doc = _documentFactory(c_doc, parser)
  *     # add namespaces to node if necessary
  *     _initNodeNamespaces(c_node, doc, ns_utf, nsmap)             # <<<<<<<<<<<<<<
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *     _registerProxy(element, doc, c_node)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":160
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":167
  *     # add namespaces to node if necessary
  *     _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)             # <<<<<<<<<<<<<<
  *     _registerProxy(element, doc, c_node)
  *     element._init()
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":161
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":168
  *     _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *     _registerProxy(element, doc, c_node)             # <<<<<<<<<<<<<<
  *     element._init()
  *     return 0
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_element, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_element, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":162
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":169
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *     _registerProxy(element, doc, c_node)
  *     element._init()             # <<<<<<<<<<<<<<
  *     return 0
  * 
  */
-  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_init_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_init_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":163
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":170
  *     _registerProxy(element, doc, c_node)
  *     element._init()
  *     return 0             # <<<<<<<<<<<<<<
@@ -15120,7 +15352,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":135
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":142
  *         raise
  * 
  * cdef int _initNewElement(_Element element, bint is_html, name_utf, ns_utf,             # <<<<<<<<<<<<<<
@@ -15140,7 +15372,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":165
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":172
  *     return 0
  * 
  * cdef _Element _makeSubElement(_Element parent, tag, text, tail,             # <<<<<<<<<<<<<<
@@ -15173,7 +15405,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_makeSubElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":172
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":179
  *     cdef xmlNode* c_node
  *     cdef xmlDoc* c_doc
  *     if parent is None or parent._doc is None:             # <<<<<<<<<<<<<<
@@ -15189,7 +15421,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":173
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":180
  *     cdef xmlDoc* c_doc
  *     if parent is None or parent._doc is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -15202,23 +15434,23 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":174
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":181
  *     if parent is None or parent._doc is None:
  *         return None
  *     _assertValidNode(parent)             # <<<<<<<<<<<<<<
  *     ns_utf, name_utf = _getNsTag(tag)
  *     c_doc = parent._doc._c_doc
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_parent); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_parent); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":175
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":182
  *         return None
  *     _assertValidNode(parent)
  *     ns_utf, name_utf = _getNsTag(tag)             # <<<<<<<<<<<<<<
  *     c_doc = parent._doc._c_doc
  * 
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   if (likely(__pyx_t_5 != Py_None)) {
     PyObject* sequence = __pyx_t_5;
@@ -15230,7 +15462,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
@@ -15238,21 +15470,21 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     __Pyx_INCREF(__pyx_t_6);
     __Pyx_INCREF(__pyx_t_7);
     #else
-    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     #endif
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns_utf = __pyx_t_6;
   __pyx_t_6 = 0;
   __pyx_v_name_utf = __pyx_t_7;
   __pyx_t_7 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":176
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":183
  *     _assertValidNode(parent)
  *     ns_utf, name_utf = _getNsTag(tag)
  *     c_doc = parent._doc._c_doc             # <<<<<<<<<<<<<<
@@ -15262,7 +15494,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   __pyx_t_8 = __pyx_v_parent->_doc->_c_doc;
   __pyx_v_c_doc = __pyx_t_8;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":178
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":185
  *     c_doc = parent._doc._c_doc
  * 
  *     if parent._doc._parser is not None and parent._doc._parser._for_html:             # <<<<<<<<<<<<<<
@@ -15277,40 +15509,40 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":179
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":186
  * 
  *     if parent._doc._parser is not None and parent._doc._parser._for_html:
  *         _htmlTagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *     else:
  *         _tagValidOrRaise(name_utf)
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":181
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":188
  *         _htmlTagValidOrRaise(name_utf)
  *     else:
  *         _tagValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  * 
  *     c_node = _createElement(c_doc, name_utf)
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":183
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":190
  *         _tagValidOrRaise(name_utf)
  * 
  *     c_node = _createElement(c_doc, name_utf)             # <<<<<<<<<<<<<<
  *     if c_node is NULL:
  *         raise MemoryError()
  */
-  __pyx_t_9 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_node = __pyx_t_9;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":184
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":191
  * 
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -15320,17 +15552,17 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":185
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":192
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     tree.xmlAddChild(parent._c_node, c_node)
  * 
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":186
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":193
  *     if c_node is NULL:
  *         raise MemoryError()
  *     tree.xmlAddChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -15339,7 +15571,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  */
   xmlAddChild(__pyx_v_parent->_c_node, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":188
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":195
  *     tree.xmlAddChild(parent._c_node, c_node)
  * 
  *     try:             # <<<<<<<<<<<<<<
@@ -15353,7 +15585,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     __Pyx_XGOTREF(__pyx_t_12);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":189
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":196
  * 
  *     try:
  *         if text is not None:             # <<<<<<<<<<<<<<
@@ -15364,19 +15596,19 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
       __pyx_t_3 = (__pyx_t_1 != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":190
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":197
  *     try:
  *         if text is not None:
  *             _setNodeText(c_node, text)             # <<<<<<<<<<<<<<
  *         if tail is not None:
  *             _setTailText(c_node, tail)
  */
-        __pyx_t_4 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_4 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         goto __pyx_L14;
       }
       __pyx_L14:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":191
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":198
  *         if text is not None:
  *             _setNodeText(c_node, text)
  *         if tail is not None:             # <<<<<<<<<<<<<<
@@ -15387,19 +15619,19 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
       __pyx_t_1 = (__pyx_t_3 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":192
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":199
  *             _setNodeText(c_node, text)
  *         if tail is not None:
  *             _setTailText(c_node, tail)             # <<<<<<<<<<<<<<
  * 
  *         # add namespaces to node if necessary
  */
-        __pyx_t_4 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_c_node, __pyx_v_tail); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_4 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_c_node, __pyx_v_tail); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         goto __pyx_L15;
       }
       __pyx_L15:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":195
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":202
  * 
  *         # add namespaces to node if necessary
  *         _initNodeNamespaces(c_node, parent._doc, ns_utf, nsmap)             # <<<<<<<<<<<<<<
@@ -15408,10 +15640,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  */
       __pyx_t_5 = ((PyObject *)__pyx_v_parent->_doc);
       __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_4 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, ((struct LxmlDocument *)__pyx_t_5), __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, ((struct LxmlDocument *)__pyx_t_5), __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":196
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":203
  *         # add namespaces to node if necessary
  *         _initNodeNamespaces(c_node, parent._doc, ns_utf, nsmap)
  *         _initNodeAttributes(c_node, parent._doc, attrib, extra_attrs)             # <<<<<<<<<<<<<<
@@ -15420,12 +15652,12 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  */
       __pyx_t_5 = ((PyObject *)__pyx_v_parent->_doc);
       __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_7 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, ((struct LxmlDocument *)__pyx_t_5), __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+      __pyx_t_7 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, ((struct LxmlDocument *)__pyx_t_5), __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":197
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":204
  *         _initNodeNamespaces(c_node, parent._doc, ns_utf, nsmap)
  *         _initNodeAttributes(c_node, parent._doc, attrib, extra_attrs)
  *         return _elementFactory(parent._doc, c_node)             # <<<<<<<<<<<<<<
@@ -15435,7 +15667,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
       __Pyx_XDECREF(((PyObject *)__pyx_r));
       __pyx_t_7 = ((PyObject *)__pyx_v_parent->_doc);
       __Pyx_INCREF(__pyx_t_7);
-      __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+      __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_r = ((struct LxmlElement *)__pyx_t_5);
@@ -15451,7 +15683,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":198
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":205
  *         _initNodeAttributes(c_node, parent._doc, attrib, extra_attrs)
  *         return _elementFactory(parent._doc, c_node)
  *     except:             # <<<<<<<<<<<<<<
@@ -15460,12 +15692,12 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._makeSubElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":200
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":207
  *     except:
  *         # make sure we clean up in case of an error
  *         _removeNode(parent._doc, c_node)             # <<<<<<<<<<<<<<
@@ -15474,10 +15706,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  */
       __pyx_t_13 = ((PyObject *)__pyx_v_parent->_doc);
       __Pyx_INCREF(__pyx_t_13);
-      __pyx_t_4 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_13), __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_13), __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
       __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":201
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":208
  *         # make sure we clean up in case of an error
  *         _removeNode(parent._doc, c_node)
  *         raise             # <<<<<<<<<<<<<<
@@ -15489,7 +15721,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
       __Pyx_XGIVEREF(__pyx_t_6);
       __Pyx_ErrRestore(__pyx_t_5, __pyx_t_7, __pyx_t_6);
       __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; 
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -15515,7 +15747,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
     __pyx_L13_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":172
  *     return 0
  * 
  * cdef _Element _makeSubElement(_Element parent, tag, text, tail,             # <<<<<<<<<<<<<<
@@ -15539,7 +15771,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":203
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":210
  *         raise
  * 
  * cdef int _initNodeNamespaces(xmlNode* c_node, _Document doc,             # <<<<<<<<<<<<<<
@@ -15578,18 +15810,18 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   __Pyx_RefNannySetupContext("_initNodeNamespaces", 0);
   __Pyx_INCREF(__pyx_v_node_ns_utf);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":212
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":219
  *     cdef xmlNs* c_ns
  *     cdef list nsdefs
  *     if not nsmap:             # <<<<<<<<<<<<<<
  *         if node_ns_utf is not None:
  *             _uriValidOrRaise(node_ns_utf)
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_nsmap); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_nsmap); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = ((!__pyx_t_1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":213
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":220
  *     cdef list nsdefs
  *     if not nsmap:
  *         if node_ns_utf is not None:             # <<<<<<<<<<<<<<
@@ -15600,28 +15832,28 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":214
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":221
  *     if not nsmap:
  *         if node_ns_utf is not None:
  *             _uriValidOrRaise(node_ns_utf)             # <<<<<<<<<<<<<<
  *             doc._setNodeNs(c_node, _xcstr(node_ns_utf))
  *         return 0
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_node_ns_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_node_ns_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":215
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":222
  *         if node_ns_utf is not None:
  *             _uriValidOrRaise(node_ns_utf)
  *             doc._setNodeNs(c_node, _xcstr(node_ns_utf))             # <<<<<<<<<<<<<<
  *         return 0
  * 
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_node_ns_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_node_ns_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":216
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":223
  *             _uriValidOrRaise(node_ns_utf)
  *             doc._setNodeNs(c_node, _xcstr(node_ns_utf))
  *         return 0             # <<<<<<<<<<<<<<
@@ -15632,39 +15864,39 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":218
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":225
  *         return 0
  * 
  *     nsdefs = list(nsmap.items())             # <<<<<<<<<<<<<<
  *     if None in nsmap and len(nsdefs) > 1:
  *         # Move the default namespace to the end.  This makes sure libxml2
  */
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __pyx_v_nsdefs = ((PyObject*)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":219
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":226
  * 
  *     nsdefs = list(nsmap.items())
  *     if None in nsmap and len(nsdefs) > 1:             # <<<<<<<<<<<<<<
  *         # Move the default namespace to the end.  This makes sure libxml2
  *         # prefers a prefix if the ns is defined redundantly on the same
  */
-  __pyx_t_1 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_nsmap, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_nsmap, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if ((__pyx_t_1 != 0)) {
-    __pyx_t_6 = PyList_GET_SIZE(__pyx_v_nsdefs); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyList_GET_SIZE(__pyx_v_nsdefs); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_2 = ((__pyx_t_6 > 1) != 0);
     __pyx_t_7 = __pyx_t_2;
   } else {
@@ -15672,16 +15904,16 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   }
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":226
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":233
  *         # elements serialise without prefix (i.e. into the non-default
  *         # namespace).
  *         item = (None, nsmap[None])             # <<<<<<<<<<<<<<
  *         nsdefs.remove(item)
  *         nsdefs.append(item)
  */
-    __pyx_t_5 = PyObject_GetItem(__pyx_v_nsmap, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+    __pyx_t_5 = PyObject_GetItem(__pyx_v_nsmap, Py_None); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(Py_None);
     PyTuple_SET_ITEM(__pyx_t_4, 0, Py_None);
@@ -15692,39 +15924,39 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     __pyx_v_item = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":227
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":234
  *         # namespace).
  *         item = (None, nsmap[None])
  *         nsdefs.remove(item)             # <<<<<<<<<<<<<<
  *         nsdefs.append(item)
  * 
  */
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsdefs, __pyx_n_s_remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsdefs, __pyx_n_s_remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_item);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_item);
     __Pyx_GIVEREF(__pyx_v_item);
-    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":228
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":235
  *         item = (None, nsmap[None])
  *         nsdefs.remove(item)
  *         nsdefs.append(item)             # <<<<<<<<<<<<<<
  * 
  *     for prefix, href in nsdefs:
  */
-    __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_nsdefs, __pyx_v_item); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_nsdefs, __pyx_v_item); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":230
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":237
  *         nsdefs.append(item)
  * 
  *     for prefix, href in nsdefs:             # <<<<<<<<<<<<<<
@@ -15735,9 +15967,9 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   for (;;) {
     if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
       PyObject* sequence = __pyx_t_5;
@@ -15749,7 +15981,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -15762,15 +15994,15 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       __Pyx_INCREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_t_10);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_10);
       #endif
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else {
       Py_ssize_t index = -1;
-      __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_11);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
@@ -15778,7 +16010,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       __Pyx_GOTREF(__pyx_t_4);
       index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L8_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_10);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_12 = NULL;
       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       goto __pyx_L9_unpacking_done;
@@ -15786,7 +16018,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       __pyx_t_12 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
     }
     __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4);
@@ -15794,28 +16026,28 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     __Pyx_XDECREF_SET(__pyx_v_href, __pyx_t_10);
     __pyx_t_10 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":231
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":238
  * 
  *     for prefix, href in nsdefs:
  *         href_utf = _utf8(href)             # <<<<<<<<<<<<<<
  *         _uriValidOrRaise(href_utf)
  *         c_href = _xcstr(href_utf)
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__utf8(__pyx_v_href); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__utf8(__pyx_v_href); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_XDECREF_SET(__pyx_v_href_utf, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":232
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":239
  *     for prefix, href in nsdefs:
  *         href_utf = _utf8(href)
  *         _uriValidOrRaise(href_utf)             # <<<<<<<<<<<<<<
  *         c_href = _xcstr(href_utf)
  *         if prefix is not None:
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_href_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_href_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":233
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":240
  *         href_utf = _utf8(href)
  *         _uriValidOrRaise(href_utf)
  *         c_href = _xcstr(href_utf)             # <<<<<<<<<<<<<<
@@ -15824,7 +16056,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  */
     __pyx_v_c_href = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_href_utf);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":234
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":241
  *         _uriValidOrRaise(href_utf)
  *         c_href = _xcstr(href_utf)
  *         if prefix is not None:             # <<<<<<<<<<<<<<
@@ -15835,28 +16067,28 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     __pyx_t_1 = (__pyx_t_7 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":235
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":242
  *         c_href = _xcstr(href_utf)
  *         if prefix is not None:
  *             prefix_utf = _utf8(prefix)             # <<<<<<<<<<<<<<
  *             _prefixValidOrRaise(prefix_utf)
  *             c_prefix = _xcstr(prefix_utf)
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree__utf8(__pyx_v_prefix); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree__utf8(__pyx_v_prefix); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_XDECREF_SET(__pyx_v_prefix_utf, ((PyObject*)__pyx_t_5));
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":236
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":243
  *         if prefix is not None:
  *             prefix_utf = _utf8(prefix)
  *             _prefixValidOrRaise(prefix_utf)             # <<<<<<<<<<<<<<
  *             c_prefix = _xcstr(prefix_utf)
  *         else:
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree__prefixValidOrRaise(__pyx_v_prefix_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree__prefixValidOrRaise(__pyx_v_prefix_utf); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":237
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":244
  *             prefix_utf = _utf8(prefix)
  *             _prefixValidOrRaise(prefix_utf)
  *             c_prefix = _xcstr(prefix_utf)             # <<<<<<<<<<<<<<
@@ -15868,7 +16100,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":239
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":246
  *             c_prefix = _xcstr(prefix_utf)
  *         else:
  *             c_prefix = <const_xmlChar*>NULL             # <<<<<<<<<<<<<<
@@ -15879,7 +16111,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     }
     __pyx_L10:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":241
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":248
  *             c_prefix = <const_xmlChar*>NULL
  *         # add namespace with prefix if it is not already known
  *         c_ns = tree.xmlSearchNs(doc._c_doc, c_node, c_prefix)             # <<<<<<<<<<<<<<
@@ -15888,7 +16120,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  */
     __pyx_v_c_ns = xmlSearchNs(__pyx_v_doc->_c_doc, __pyx_v_c_node, __pyx_v_c_prefix);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":249
  *         # add namespace with prefix if it is not already known
  *         c_ns = tree.xmlSearchNs(doc._c_doc, c_node, c_prefix)
  *         if c_ns is NULL or \             # <<<<<<<<<<<<<<
@@ -15898,7 +16130,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     __pyx_t_1 = ((__pyx_v_c_ns == NULL) != 0);
     if (!__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":243
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":250
  *         c_ns = tree.xmlSearchNs(doc._c_doc, c_node, c_prefix)
  *         if c_ns is NULL or \
  *                 c_ns.href is NULL or \             # <<<<<<<<<<<<<<
@@ -15908,7 +16140,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       __pyx_t_7 = ((__pyx_v_c_ns->href == NULL) != 0);
       if (!__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":244
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":251
  *         if c_ns is NULL or \
  *                 c_ns.href is NULL or \
  *                 tree.xmlStrcmp(c_ns.href, c_href) != 0:             # <<<<<<<<<<<<<<
@@ -15926,7 +16158,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     }
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":245
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":252
  *                 c_ns.href is NULL or \
  *                 tree.xmlStrcmp(c_ns.href, c_href) != 0:
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)             # <<<<<<<<<<<<<<
@@ -15938,17 +16170,17 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
     }
     __pyx_L11:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":246
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":253
  *                 tree.xmlStrcmp(c_ns.href, c_href) != 0:
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  *         if href_utf == node_ns_utf:             # <<<<<<<<<<<<<<
  *             tree.xmlSetNs(c_node, c_ns)
  *             node_ns_utf = None
  */
-    __pyx_t_7 = (__Pyx_PyBytes_Equals(__pyx_v_href_utf, __pyx_v_node_ns_utf, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = (__Pyx_PyBytes_Equals(__pyx_v_href_utf, __pyx_v_node_ns_utf, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":247
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":254
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  *         if href_utf == node_ns_utf:
  *             tree.xmlSetNs(c_node, c_ns)             # <<<<<<<<<<<<<<
@@ -15957,7 +16189,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  */
       xmlSetNs(__pyx_v_c_node, __pyx_v_c_ns);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":248
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":255
  *         if href_utf == node_ns_utf:
  *             tree.xmlSetNs(c_node, c_ns)
  *             node_ns_utf = None             # <<<<<<<<<<<<<<
@@ -15972,7 +16204,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   }
   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":250
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":257
  *             node_ns_utf = None
  * 
  *     if node_ns_utf is not None:             # <<<<<<<<<<<<<<
@@ -15983,19 +16215,19 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   __pyx_t_1 = (__pyx_t_7 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":251
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":258
  * 
  *     if node_ns_utf is not None:
  *         doc._setNodeNs(c_node, _xcstr(node_ns_utf))             # <<<<<<<<<<<<<<
  *     return 0
  * 
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_node_ns_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_node_ns_utf)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L13;
   }
   __pyx_L13:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":259
  *     if node_ns_utf is not None:
  *         doc._setNodeNs(c_node, _xcstr(node_ns_utf))
  *     return 0             # <<<<<<<<<<<<<<
@@ -16005,7 +16237,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":203
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":210
  *         raise
  * 
  * cdef int _initNodeNamespaces(xmlNode* c_node, _Document doc,             # <<<<<<<<<<<<<<
@@ -16034,7 +16266,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":254
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":261
  *     return 0
  * 
  * cdef _initNodeAttributes(xmlNode* c_node, _Document doc, attrib, dict extra):             # <<<<<<<<<<<<<<
@@ -16069,7 +16301,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   __Pyx_RefNannySetupContext("_initNodeAttributes", 0);
   __Pyx_INCREF(__pyx_v_attrib);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":259
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":266
  *     cdef bint is_html
  *     cdef xmlNs* c_ns
  *     if attrib is not None and not hasattr(attrib, u'items'):             # <<<<<<<<<<<<<<
@@ -16078,7 +16310,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
   __pyx_t_1 = (__pyx_v_attrib != Py_None);
   if ((__pyx_t_1 != 0)) {
-    __pyx_t_2 = PyObject_HasAttr(__pyx_v_attrib, __pyx_n_u_items); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_HasAttr(__pyx_v_attrib, __pyx_n_u_items); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
     __pyx_t_2 = __pyx_t_3;
   } else {
@@ -16086,7 +16318,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":261
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":268
  *     if attrib is not None and not hasattr(attrib, u'items'):
  *         raise TypeError, u"Invalid attribute dictionary: %s" % \
  *             python._fqtypename(attrib).decode('utf8')             # <<<<<<<<<<<<<<
@@ -16094,35 +16326,35 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *         return  # nothing to do
  */
     __pyx_t_4 = _fqtypename(__pyx_v_attrib);
-    __pyx_t_5 = __Pyx_decode_c_string(__pyx_t_4, 0, strlen(__pyx_t_4), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_decode_c_string(__pyx_t_4, 0, strlen(__pyx_t_4), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":260
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":267
  *     cdef xmlNs* c_ns
  *     if attrib is not None and not hasattr(attrib, u'items'):
  *         raise TypeError, u"Invalid attribute dictionary: %s" % \             # <<<<<<<<<<<<<<
  *             python._fqtypename(attrib).decode('utf8')
  *     if not attrib and not extra:
  */
-    __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Invalid_attribute_dictionary_s, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Invalid_attribute_dictionary_s, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_6, 0, 0);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":262
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":269
  *         raise TypeError, u"Invalid attribute dictionary: %s" % \
  *             python._fqtypename(attrib).decode('utf8')
  *     if not attrib and not extra:             # <<<<<<<<<<<<<<
  *         return  # nothing to do
  *     is_html = doc._parser._for_html
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_1 = ((!__pyx_t_2) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = ((!__pyx_t_2) != 0);
     __pyx_t_2 = __pyx_t_3;
   } else {
@@ -16130,7 +16362,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":263
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":270
  *             python._fqtypename(attrib).decode('utf8')
  *     if not attrib and not extra:
  *         return  # nothing to do             # <<<<<<<<<<<<<<
@@ -16142,7 +16374,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":271
  *     if not attrib and not extra:
  *         return  # nothing to do
  *     is_html = doc._parser._for_html             # <<<<<<<<<<<<<<
@@ -16152,29 +16384,29 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   __pyx_t_2 = __pyx_v_doc->_parser->_for_html;
   __pyx_v_is_html = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":272
  *         return  # nothing to do
  *     is_html = doc._parser._for_html
  *     seen = set()             # <<<<<<<<<<<<<<
  *     if extra:
  *         for name, value in sorted(extra.items()):
  */
-  __pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __pyx_v_seen = ((PyObject*)__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":273
  *     is_html = doc._parser._for_html
  *     seen = set()
  *     if extra:             # <<<<<<<<<<<<<<
  *         for name, value in sorted(extra.items()):
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":267
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":274
  *     seen = set()
  *     if extra:
  *         for name, value in sorted(extra.items()):             # <<<<<<<<<<<<<<
@@ -16183,23 +16415,23 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
     if (unlikely(__pyx_v_extra == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
     __Pyx_GIVEREF(__pyx_t_6);
     __pyx_t_6 = 0;
-    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
       __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext;
     }
@@ -16208,16 +16440,16 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_5)) {
         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_5)) {
         if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_6 = __pyx_t_8(__pyx_t_5);
@@ -16225,7 +16457,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
@@ -16241,7 +16473,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -16254,15 +16486,15 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_INCREF(__pyx_t_9);
         __Pyx_INCREF(__pyx_t_10);
         #else
-        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
-        __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         #endif
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       } else {
         Py_ssize_t index = -1;
-        __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
@@ -16270,7 +16502,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_GOTREF(__pyx_t_9);
         index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L8_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_10);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_12 = NULL;
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         goto __pyx_L9_unpacking_done;
@@ -16278,7 +16510,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         __pyx_t_12 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L9_unpacking_done:;
       }
       __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9);
@@ -16286,31 +16518,31 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10);
       __pyx_t_10 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":268
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":275
  *     if extra:
  *         for name, value in sorted(extra.items()):
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)             # <<<<<<<<<<<<<<
  *     if attrib:
  *         # attrib will usually be a plain unordered dict
  */
-      __pyx_t_13 = __pyx_f_4lxml_5etree__addAttributeToNode(__pyx_v_c_node, __pyx_v_doc, __pyx_v_is_html, __pyx_v_name, __pyx_v_value, __pyx_v_seen); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = __pyx_f_4lxml_5etree__addAttributeToNode(__pyx_v_c_node, __pyx_v_doc, __pyx_v_is_html, __pyx_v_name, __pyx_v_value, __pyx_v_seen); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":269
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":276
  *         for name, value in sorted(extra.items()):
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *     if attrib:             # <<<<<<<<<<<<<<
  *         # attrib will usually be a plain unordered dict
  *         if type(attrib) is dict:
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":271
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":278
  *     if attrib:
  *         # attrib will usually be a plain unordered dict
  *         if type(attrib) is dict:             # <<<<<<<<<<<<<<
@@ -16321,24 +16553,24 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":272
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":279
  *         # attrib will usually be a plain unordered dict
  *         if type(attrib) is dict:
  *             attrib = sorted(attrib.items())             # <<<<<<<<<<<<<<
  *         elif isinstance(attrib, _Attrib) or (
  *                 OrderedDict is not None and isinstance(attrib, OrderedDict)):
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
       __Pyx_GIVEREF(__pyx_t_6);
       __pyx_t_6 = 0;
-      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_6);
@@ -16346,7 +16578,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       goto __pyx_L11;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":273
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":280
  *         if type(attrib) is dict:
  *             attrib = sorted(attrib.items())
  *         elif isinstance(attrib, _Attrib) or (             # <<<<<<<<<<<<<<
@@ -16356,7 +16588,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_attrib, ((PyObject*)__pyx_ptype_4lxml_5etree__Attrib)); 
     if (!(__pyx_t_1 != 0)) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":274
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":281
  *             attrib = sorted(attrib.items())
  *         elif isinstance(attrib, _Attrib) or (
  *                 OrderedDict is not None and isinstance(attrib, OrderedDict)):             # <<<<<<<<<<<<<<
@@ -16367,7 +16599,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       if ((__pyx_t_2 != 0)) {
         __pyx_t_6 = __pyx_v_4lxml_5etree_OrderedDict;
         __Pyx_INCREF(__pyx_t_6);
-        __pyx_t_3 = PyObject_IsInstance(__pyx_v_attrib, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyObject_IsInstance(__pyx_v_attrib, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __pyx_t_14 = (__pyx_t_3 != 0);
       } else {
@@ -16379,16 +16611,16 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     }
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":275
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":282
  *         elif isinstance(attrib, _Attrib) or (
  *                 OrderedDict is not None and isinstance(attrib, OrderedDict)):
  *             attrib = attrib.items()             # <<<<<<<<<<<<<<
  *         else:
  *             # assume it's an unordered mapping of some kind
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_5);
@@ -16397,24 +16629,24 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":278
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":285
  *         else:
  *             # assume it's an unordered mapping of some kind
  *             attrib = sorted(attrib.items())             # <<<<<<<<<<<<<<
  *         for name, value in attrib:
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
       __Pyx_GIVEREF(__pyx_t_6);
       __pyx_t_6 = 0;
-      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_6);
@@ -16422,7 +16654,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     }
     __pyx_L11:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":279
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":286
  *             # assume it's an unordered mapping of some kind
  *             attrib = sorted(attrib.items())
  *         for name, value in attrib:             # <<<<<<<<<<<<<<
@@ -16433,7 +16665,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       __pyx_t_6 = __pyx_v_attrib; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_attrib); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_attrib); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
     }
@@ -16441,16 +16673,16 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_6)) {
         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_6)) {
         if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_5 = __pyx_t_8(__pyx_t_6);
@@ -16458,7 +16690,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
@@ -16474,7 +16706,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -16487,15 +16719,15 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_INCREF(__pyx_t_10);
         __Pyx_INCREF(__pyx_t_9);
         #else
-        __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
-        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         #endif
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       } else {
         Py_ssize_t index = -1;
-        __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
@@ -16503,7 +16735,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_GOTREF(__pyx_t_10);
         index = 1; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L14_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_9);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_12 = NULL;
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         goto __pyx_L15_unpacking_done;
@@ -16511,7 +16743,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         __pyx_t_12 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L15_unpacking_done:;
       }
       __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_10);
@@ -16519,21 +16751,21 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
       __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":280
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":287
  *             attrib = sorted(attrib.items())
  *         for name, value in attrib:
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)             # <<<<<<<<<<<<<<
  * 
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,
  */
-      __pyx_t_13 = __pyx_f_4lxml_5etree__addAttributeToNode(__pyx_v_c_node, __pyx_v_doc, __pyx_v_is_html, __pyx_v_name, __pyx_v_value, __pyx_v_seen); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = __pyx_f_4lxml_5etree__addAttributeToNode(__pyx_v_c_node, __pyx_v_doc, __pyx_v_is_html, __pyx_v_name, __pyx_v_value, __pyx_v_seen); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L10;
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":261
  *     return 0
  * 
  * cdef _initNodeAttributes(xmlNode* c_node, _Document doc, attrib, dict extra):             # <<<<<<<<<<<<<<
@@ -16562,7 +16794,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":282
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":289
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  * 
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,             # <<<<<<<<<<<<<<
@@ -16591,14 +16823,14 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_addAttributeToNode", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":284
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":291
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,
  *                              name, value, set seen_tags) except -1:
  *     ns_utf, name_utf = tag = _getNsTag(name)             # <<<<<<<<<<<<<<
  *     if tag in seen_tags:
  *         return 0
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -16610,7 +16842,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -16618,13 +16850,13 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns_utf = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -16634,18 +16866,18 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   __pyx_v_tag = ((PyObject*)__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":285
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":292
  *                              name, value, set seen_tags) except -1:
  *     ns_utf, name_utf = tag = _getNsTag(name)
  *     if tag in seen_tags:             # <<<<<<<<<<<<<<
  *         return 0
  *     seen_tags.add(tag)
  */
-  __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_tag, __pyx_v_seen_tags, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_tag, __pyx_v_seen_tags, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":286
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":293
  *     ns_utf, name_utf = tag = _getNsTag(name)
  *     if tag in seen_tags:
  *         return 0             # <<<<<<<<<<<<<<
@@ -16656,7 +16888,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":287
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":294
  *     if tag in seen_tags:
  *         return 0
  *     seen_tags.add(tag)             # <<<<<<<<<<<<<<
@@ -16665,11 +16897,11 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  */
   if (unlikely(__pyx_v_seen_tags == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add");
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_6 = PySet_Add(__pyx_v_seen_tags, __pyx_v_tag); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PySet_Add(__pyx_v_seen_tags, __pyx_v_tag); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":288
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":295
  *         return 0
  *     seen_tags.add(tag)
  *     if not is_html:             # <<<<<<<<<<<<<<
@@ -16679,31 +16911,31 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   __pyx_t_5 = ((!(__pyx_v_is_html != 0)) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":289
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":296
  *     seen_tags.add(tag)
  *     if not is_html:
  *         _attributeValidOrRaise(name_utf)             # <<<<<<<<<<<<<<
  *     value_utf = _utf8(value)
  *     if ns_utf is None:
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":290
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":297
  *     if not is_html:
  *         _attributeValidOrRaise(name_utf)
  *     value_utf = _utf8(value)             # <<<<<<<<<<<<<<
  *     if ns_utf is None:
  *         tree.xmlNewProp(c_node, _xcstr(name_utf), _xcstr(value_utf))
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_value_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":291
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":298
  *         _attributeValidOrRaise(name_utf)
  *     value_utf = _utf8(value)
  *     if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -16714,7 +16946,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   __pyx_t_4 = (__pyx_t_5 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":292
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":299
  *     value_utf = _utf8(value)
  *     if ns_utf is None:
  *         tree.xmlNewProp(c_node, _xcstr(name_utf), _xcstr(value_utf))             # <<<<<<<<<<<<<<
@@ -16726,26 +16958,26 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":294
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":301
  *         tree.xmlNewProp(c_node, _xcstr(name_utf), _xcstr(value_utf))
  *     else:
  *         _uriValidOrRaise(ns_utf)             # <<<<<<<<<<<<<<
  *         c_ns = doc._findOrBuildNodeNs(c_node, _xcstr(ns_utf), NULL, 1)
  *         tree.xmlNewNsProp(c_node, c_ns,
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_ns_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_ns_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":295
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":302
  *     else:
  *         _uriValidOrRaise(ns_utf)
  *         c_ns = doc._findOrBuildNodeNs(c_node, _xcstr(ns_utf), NULL, 1)             # <<<<<<<<<<<<<<
  *         tree.xmlNewNsProp(c_node, c_ns,
  *                           _xcstr(name_utf), _xcstr(value_utf))
  */
-    __pyx_t_8 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns_utf), NULL, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns_utf), NULL, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_ns = __pyx_t_8;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":296
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":303
  *         _uriValidOrRaise(ns_utf)
  *         c_ns = doc._findOrBuildNodeNs(c_node, _xcstr(ns_utf), NULL, 1)
  *         tree.xmlNewNsProp(c_node, c_ns,             # <<<<<<<<<<<<<<
@@ -16756,7 +16988,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":298
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":305
  *         tree.xmlNewNsProp(c_node, c_ns,
  *                           _xcstr(name_utf), _xcstr(value_utf))
  *     return 0             # <<<<<<<<<<<<<<
@@ -16766,7 +16998,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":282
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":289
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  * 
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,             # <<<<<<<<<<<<<<
@@ -16790,7 +17022,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":304
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":311
  *     xmlNode* node
  * 
  * cdef int _removeUnusedNamespaceDeclarations(xmlNode* c_element) except -1:             # <<<<<<<<<<<<<<
@@ -16820,7 +17052,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_removeUnusedNamespaceDeclarations", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":316
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":323
  *     cdef size_t i
  * 
  *     c_ns_list = NULL             # <<<<<<<<<<<<<<
@@ -16829,7 +17061,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":317
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":324
  * 
  *     c_ns_list = NULL
  *     c_ns_list_size = 0             # <<<<<<<<<<<<<<
@@ -16838,7 +17070,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list_size = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":318
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":325
  *     c_ns_list = NULL
  *     c_ns_list_size = 0
  *     c_ns_list_len  = 0             # <<<<<<<<<<<<<<
@@ -16847,7 +17079,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list_len = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":320
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":327
  *     c_ns_list_len  = 0
  * 
  *     if c_element.parent is not NULL and \             # <<<<<<<<<<<<<<
@@ -16857,7 +17089,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_1 = ((__pyx_v_c_element->parent != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":321
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":328
  * 
  *     if c_element.parent is not NULL and \
  *             c_element.parent.type == tree.XML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -16871,7 +17103,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":323
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":330
  *             c_element.parent.type == tree.XML_DOCUMENT_NODE:
  *         # include the document node
  *         c_nsdef = c_element.parent.nsDef             # <<<<<<<<<<<<<<
@@ -16881,7 +17113,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_4 = __pyx_v_c_element->parent->nsDef;
     __pyx_v_c_nsdef = __pyx_t_4;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":324
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":331
  *         # include the document node
  *         c_nsdef = c_element.parent.nsDef
  *         while c_nsdef is not NULL:             # <<<<<<<<<<<<<<
@@ -16892,7 +17124,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_nsdef != NULL) != 0);
       if (!__pyx_t_3) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":325
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":332
  *         c_nsdef = c_element.parent.nsDef
  *         while c_nsdef is not NULL:
  *             if c_ns_list_len >= c_ns_list_size:             # <<<<<<<<<<<<<<
@@ -16902,7 +17134,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":326
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":333
  *         while c_nsdef is not NULL:
  *             if c_ns_list_len >= c_ns_list_size:
  *                 if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -16912,7 +17144,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":327
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":334
  *             if c_ns_list_len >= c_ns_list_size:
  *                 if c_ns_list is NULL:
  *                     c_ns_list_size = 20             # <<<<<<<<<<<<<<
@@ -16924,7 +17156,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":329
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":336
  *                     c_ns_list_size = 20
  *                 else:
  *                     c_ns_list_size *= 2             # <<<<<<<<<<<<<<
@@ -16935,7 +17167,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         }
         __pyx_L7:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":330
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":337
  *                 else:
  *                     c_ns_list_size *= 2
  *                 c_nsref_ptr = <_ns_node_ref*> stdlib.realloc(             # <<<<<<<<<<<<<<
@@ -16944,7 +17176,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
         __pyx_v_c_nsref_ptr = ((__pyx_t_4lxml_5etree__ns_node_ref *)realloc(__pyx_v_c_ns_list, (__pyx_v_c_ns_list_size * (sizeof(__pyx_t_4lxml_5etree__ns_node_ref)))));
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":332
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":339
  *                 c_nsref_ptr = <_ns_node_ref*> stdlib.realloc(
  *                     c_ns_list, c_ns_list_size * sizeof(_ns_node_ref))
  *                 if c_nsref_ptr is NULL:             # <<<<<<<<<<<<<<
@@ -16954,7 +17186,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_3 = ((__pyx_v_c_nsref_ptr == NULL) != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":333
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":340
  *                     c_ns_list, c_ns_list_size * sizeof(_ns_node_ref))
  *                 if c_nsref_ptr is NULL:
  *                     if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -16964,7 +17196,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
           __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":334
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":341
  *                 if c_nsref_ptr is NULL:
  *                     if c_ns_list is not NULL:
  *                         stdlib.free(c_ns_list)             # <<<<<<<<<<<<<<
@@ -16976,17 +17208,17 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
           }
           __pyx_L9:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":335
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":342
  *                     if c_ns_list is not NULL:
  *                         stdlib.free(c_ns_list)
  *                     raise MemoryError()             # <<<<<<<<<<<<<<
  *                 c_ns_list = c_nsref_ptr
  * 
  */
-          PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":336
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":343
  *                         stdlib.free(c_ns_list)
  *                     raise MemoryError()
  *                 c_ns_list = c_nsref_ptr             # <<<<<<<<<<<<<<
@@ -16998,7 +17230,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       }
       __pyx_L6:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":338
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":345
  *                 c_ns_list = c_nsref_ptr
  * 
  *             c_ns_list[c_ns_list_len].ns   = c_nsdef             # <<<<<<<<<<<<<<
@@ -17007,7 +17239,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
       (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).ns = __pyx_v_c_nsdef;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":339
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":346
  * 
  *             c_ns_list[c_ns_list_len].ns   = c_nsdef
  *             c_ns_list[c_ns_list_len].node = c_element.parent             # <<<<<<<<<<<<<<
@@ -17017,7 +17249,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_5 = __pyx_v_c_element->parent;
       (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).node = __pyx_t_5;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":340
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":347
  *             c_ns_list[c_ns_list_len].ns   = c_nsdef
  *             c_ns_list[c_ns_list_len].node = c_element.parent
  *             c_ns_list_len += 1             # <<<<<<<<<<<<<<
@@ -17026,7 +17258,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
       __pyx_v_c_ns_list_len = (__pyx_v_c_ns_list_len + 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":341
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":348
  *             c_ns_list[c_ns_list_len].node = c_element.parent
  *             c_ns_list_len += 1
  *             c_nsdef = c_nsdef.next             # <<<<<<<<<<<<<<
@@ -17040,7 +17272,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":343
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":350
  *             c_nsdef = c_nsdef.next
  * 
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)             # <<<<<<<<<<<<<<
@@ -17049,7 +17281,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_c_element, __pyx_v_c_element, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":345
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":352
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)
  *     # collect all new namespace declarations into the ns list
  *     c_nsdef = c_element.nsDef             # <<<<<<<<<<<<<<
@@ -17059,7 +17291,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_4 = __pyx_v_c_element->nsDef;
   __pyx_v_c_nsdef = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":346
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":353
  *     # collect all new namespace declarations into the ns list
  *     c_nsdef = c_element.nsDef
  *     while c_nsdef is not NULL:             # <<<<<<<<<<<<<<
@@ -17070,7 +17302,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_3 = ((__pyx_v_c_nsdef != NULL) != 0);
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":347
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":354
  *     c_nsdef = c_element.nsDef
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:             # <<<<<<<<<<<<<<
@@ -17080,7 +17312,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_3 = ((__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":348
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":355
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:
  *             if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -17090,7 +17322,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":349
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":356
  *         if c_ns_list_len >= c_ns_list_size:
  *             if c_ns_list is NULL:
  *                 c_ns_list_size = 20             # <<<<<<<<<<<<<<
@@ -17102,7 +17334,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":351
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":358
  *                 c_ns_list_size = 20
  *             else:
  *                 c_ns_list_size *= 2             # <<<<<<<<<<<<<<
@@ -17113,7 +17345,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       }
       __pyx_L13:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":352
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":359
  *             else:
  *                 c_ns_list_size *= 2
  *             c_nsref_ptr = <_ns_node_ref*> stdlib.realloc(             # <<<<<<<<<<<<<<
@@ -17122,7 +17354,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
       __pyx_v_c_nsref_ptr = ((__pyx_t_4lxml_5etree__ns_node_ref *)realloc(__pyx_v_c_ns_list, (__pyx_v_c_ns_list_size * (sizeof(__pyx_t_4lxml_5etree__ns_node_ref)))));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":354
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":361
  *             c_nsref_ptr = <_ns_node_ref*> stdlib.realloc(
  *                 c_ns_list, c_ns_list_size * sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:             # <<<<<<<<<<<<<<
@@ -17132,7 +17364,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_nsref_ptr == NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":355
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":362
  *                 c_ns_list, c_ns_list_size * sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:
  *                 if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -17142,7 +17374,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":356
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":363
  *             if c_nsref_ptr is NULL:
  *                 if c_ns_list is not NULL:
  *                     stdlib.free(c_ns_list)             # <<<<<<<<<<<<<<
@@ -17154,17 +17386,17 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         }
         __pyx_L15:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":357
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":364
  *                 if c_ns_list is not NULL:
  *                     stdlib.free(c_ns_list)
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *             c_ns_list = c_nsref_ptr
  * 
  */
-        PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":358
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":365
  *                     stdlib.free(c_ns_list)
  *                 raise MemoryError()
  *             c_ns_list = c_nsref_ptr             # <<<<<<<<<<<<<<
@@ -17176,7 +17408,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     }
     __pyx_L12:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":360
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":367
  *             c_ns_list = c_nsref_ptr
  * 
  *         c_ns_list[c_ns_list_len].ns   = c_nsdef             # <<<<<<<<<<<<<<
@@ -17185,7 +17417,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).ns = __pyx_v_c_nsdef;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":361
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":368
  * 
  *         c_ns_list[c_ns_list_len].ns   = c_nsdef
  *         c_ns_list[c_ns_list_len].node = c_element             # <<<<<<<<<<<<<<
@@ -17194,7 +17426,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).node = __pyx_v_c_element;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":362
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":369
  *         c_ns_list[c_ns_list_len].ns   = c_nsdef
  *         c_ns_list[c_ns_list_len].node = c_element
  *         c_ns_list_len += 1             # <<<<<<<<<<<<<<
@@ -17203,7 +17435,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     __pyx_v_c_ns_list_len = (__pyx_v_c_ns_list_len + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":363
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":370
  *         c_ns_list[c_ns_list_len].node = c_element
  *         c_ns_list_len += 1
  *         c_nsdef = c_nsdef.next             # <<<<<<<<<<<<<<
@@ -17214,7 +17446,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_v_c_nsdef = __pyx_t_4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":373
  * 
  *     # remove all namespace declarations from the list that are referenced
  *     if c_element.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -17224,7 +17456,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_3 = ((__pyx_v_c_element->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":374
  *     # remove all namespace declarations from the list that are referenced
  *     if c_element.type == tree.XML_ELEMENT_NODE:
  *         c_node = c_element             # <<<<<<<<<<<<<<
@@ -17233,7 +17465,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     __pyx_v_c_node = __pyx_v_c_element;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":368
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":375
  *     if c_element.type == tree.XML_ELEMENT_NODE:
  *         c_node = c_element
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -17244,7 +17476,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_3) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":369
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":376
  *         c_node = c_element
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -17254,7 +17486,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_node->ns != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":370
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":377
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:
  *                 for i in range(c_ns_list_len):             # <<<<<<<<<<<<<<
@@ -17265,7 +17497,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
           __pyx_v_i = __pyx_t_7;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":371
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":378
  *             if c_node.ns is not NULL:
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -17275,7 +17507,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
           __pyx_t_3 = ((__pyx_v_c_node->ns == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":372
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":379
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:
  *                         c_ns_list_len -= 1             # <<<<<<<<<<<<<<
@@ -17284,7 +17516,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             __pyx_v_c_ns_list_len = (__pyx_v_c_ns_list_len - 1);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":373
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":380
  *                     if c_node.ns is c_ns_list[i].ns:
  *                         c_ns_list_len -= 1
  *                         c_ns_list[i].ns   = c_ns_list[c_ns_list_len].ns             # <<<<<<<<<<<<<<
@@ -17294,7 +17526,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
             __pyx_t_4 = (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).ns;
             (__pyx_v_c_ns_list[__pyx_v_i]).ns = __pyx_t_4;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":374
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":381
  *                         c_ns_list_len -= 1
  *                         c_ns_list[i].ns   = c_ns_list[c_ns_list_len].ns
  *                         c_ns_list[i].node = c_ns_list[c_ns_list_len].node             # <<<<<<<<<<<<<<
@@ -17304,7 +17536,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
             __pyx_t_5 = (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).node;
             (__pyx_v_c_ns_list[__pyx_v_i]).node = __pyx_t_5;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":375
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":382
  *                         c_ns_list[i].ns   = c_ns_list[c_ns_list_len].ns
  *                         c_ns_list[i].node = c_ns_list[c_ns_list_len].node
  *                         c_ns_list[c_ns_list_len].ns   = NULL             # <<<<<<<<<<<<<<
@@ -17313,7 +17545,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).ns = NULL;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":376
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":383
  *                         c_ns_list[i].node = c_ns_list[c_ns_list_len].node
  *                         c_ns_list[c_ns_list_len].ns   = NULL
  *                         c_ns_list[c_ns_list_len].node = NULL             # <<<<<<<<<<<<<<
@@ -17322,7 +17554,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]).node = NULL;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":377
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":384
  *                         c_ns_list[c_ns_list_len].ns   = NULL
  *                         c_ns_list[c_ns_list_len].node = NULL
  *                         break             # <<<<<<<<<<<<<<
@@ -17337,7 +17569,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       }
       __pyx_L19:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":378
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":385
  *                         c_ns_list[c_ns_list_len].node = NULL
  *                         break
  *             if c_node is c_element:             # <<<<<<<<<<<<<<
@@ -17347,7 +17579,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_3 = ((__pyx_v_c_node == __pyx_v_c_element) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":380
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":387
  *             if c_node is c_element:
  *                 # continue with attributes
  *                 c_node = <xmlNode*>c_element.properties             # <<<<<<<<<<<<<<
@@ -17359,7 +17591,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":382
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":389
  *                 c_node = <xmlNode*>c_element.properties
  *             else:
  *                 c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -17375,7 +17607,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   }
   __pyx_L16:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":383
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":390
  *             else:
  *                 c_node = c_node.next
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_element)             # <<<<<<<<<<<<<<
@@ -17384,7 +17616,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_element);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":385
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":392
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_element)
  * 
  *     if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -17394,7 +17626,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":386
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":393
  * 
  *     if c_ns_list is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -17405,7 +17637,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":396
  * 
  *     # free all namespace declarations that remained in the list
  *     for i in range(c_ns_list_len):             # <<<<<<<<<<<<<<
@@ -17416,7 +17648,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
     __pyx_v_i = __pyx_t_7;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":390
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":397
  *     # free all namespace declarations that remained in the list
  *     for i in range(c_ns_list_len):
  *         c_node = c_ns_list[i].node             # <<<<<<<<<<<<<<
@@ -17426,7 +17658,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_5 = (__pyx_v_c_ns_list[__pyx_v_i]).node;
     __pyx_v_c_node = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":391
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":398
  *     for i in range(c_ns_list_len):
  *         c_node = c_ns_list[i].node
  *         c_nsdef = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -17436,7 +17668,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_4 = __pyx_v_c_node->nsDef;
     __pyx_v_c_nsdef = __pyx_t_4;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":392
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":399
  *         c_node = c_ns_list[i].node
  *         c_nsdef = c_node.nsDef
  *         if c_nsdef is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -17446,7 +17678,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_3 = ((__pyx_v_c_nsdef == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":393
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":400
  *         c_nsdef = c_node.nsDef
  *         if c_nsdef is c_ns_list[i].ns:
  *             c_node.nsDef = c_node.nsDef.next             # <<<<<<<<<<<<<<
@@ -17459,7 +17691,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":395
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":402
  *             c_node.nsDef = c_node.nsDef.next
  *         else:
  *             while c_nsdef.next is not c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -17470,7 +17702,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_3 = ((__pyx_v_c_nsdef->next != (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
         if (!__pyx_t_3) break;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":396
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":403
  *         else:
  *             while c_nsdef.next is not c_ns_list[i].ns:
  *                 c_nsdef = c_nsdef.next             # <<<<<<<<<<<<<<
@@ -17481,7 +17713,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_v_c_nsdef = __pyx_t_4;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":397
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":404
  *             while c_nsdef.next is not c_ns_list[i].ns:
  *                 c_nsdef = c_nsdef.next
  *             c_nsdef.next = c_nsdef.next.next             # <<<<<<<<<<<<<<
@@ -17493,7 +17725,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     }
     __pyx_L27:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":398
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":405
  *                 c_nsdef = c_nsdef.next
  *             c_nsdef.next = c_nsdef.next.next
  *         tree.xmlFreeNs(c_ns_list[i].ns)             # <<<<<<<<<<<<<<
@@ -17503,7 +17735,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     xmlFreeNs((__pyx_v_c_ns_list[__pyx_v_i]).ns);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":400
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":407
  *         tree.xmlFreeNs(c_ns_list[i].ns)
  * 
  *     if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -17513,7 +17745,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":401
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":408
  * 
  *     if c_ns_list is not NULL:
  *         stdlib.free(c_ns_list)             # <<<<<<<<<<<<<<
@@ -17525,7 +17757,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   }
   __pyx_L30:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":402
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":409
  *     if c_ns_list is not NULL:
  *         stdlib.free(c_ns_list)
  *     return 0             # <<<<<<<<<<<<<<
@@ -17535,7 +17767,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":304
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":311
  *     xmlNode* node
  * 
  * cdef int _removeUnusedNamespaceDeclarations(xmlNode* c_element) except -1:             # <<<<<<<<<<<<<<
@@ -17552,7 +17784,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":404
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":411
  *     return 0
  * 
  * cdef xmlNs* _searchNsByHref(xmlNode* c_node, const_xmlChar* c_href, bint is_attribute):             # <<<<<<<<<<<<<<
@@ -17574,7 +17806,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   xmlNs *__pyx_t_6;
   __Pyx_RefNannySetupContext("_searchNsByHref", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":413
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":420
  *     """
  *     cdef xmlNs* c_ns
  *     cdef xmlNs* c_default_ns = NULL             # <<<<<<<<<<<<<<
@@ -17583,7 +17815,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   __pyx_v_c_default_ns = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":415
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":422
  *     cdef xmlNs* c_default_ns = NULL
  *     cdef xmlNode* c_element
  *     if c_href is NULL or c_node is NULL or c_node.type == tree.XML_ENTITY_REF_NODE:             # <<<<<<<<<<<<<<
@@ -17605,7 +17837,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":416
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":423
  *     cdef xmlNode* c_element
  *     if c_href is NULL or c_node is NULL or c_node.type == tree.XML_ENTITY_REF_NODE:
  *         return NULL             # <<<<<<<<<<<<<<
@@ -17616,7 +17848,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":417
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":424
  *     if c_href is NULL or c_node is NULL or c_node.type == tree.XML_ENTITY_REF_NODE:
  *         return NULL
  *     if tree.xmlStrcmp(c_href, tree.XML_XML_NAMESPACE) == 0:             # <<<<<<<<<<<<<<
@@ -17626,7 +17858,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_2 = ((xmlStrcmp(__pyx_v_c_href, XML_XML_NAMESPACE) == 0) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":419
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":426
  *     if tree.xmlStrcmp(c_href, tree.XML_XML_NAMESPACE) == 0:
  *         # no special cases here, let libxml2 handle this
  *         return tree.xmlSearchNsByHref(c_node.doc, c_node, c_href)             # <<<<<<<<<<<<<<
@@ -17637,7 +17869,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":420
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":427
  *         # no special cases here, let libxml2 handle this
  *         return tree.xmlSearchNsByHref(c_node.doc, c_node, c_href)
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -17647,7 +17879,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_2 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":421
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":428
  *         return tree.xmlSearchNsByHref(c_node.doc, c_node, c_href)
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         is_attribute = 1             # <<<<<<<<<<<<<<
@@ -17659,7 +17891,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":422
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":429
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         is_attribute = 1
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -17676,7 +17908,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     }
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":423
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":430
  *         is_attribute = 1
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:
  *         c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -17687,7 +17919,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_v_c_node = __pyx_t_5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":424
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":431
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:
  *         c_node = c_node.parent
  *     c_element = c_node             # <<<<<<<<<<<<<<
@@ -17696,7 +17928,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   __pyx_v_c_element = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":432
  *         c_node = c_node.parent
  *     c_element = c_node
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -17707,7 +17939,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":433
  *     c_element = c_node
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -17717,7 +17949,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_4 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":427
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":434
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_ELEMENT_NODE:
  *             c_ns = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -17727,7 +17959,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
       __pyx_t_6 = __pyx_v_c_node->nsDef;
       __pyx_v_c_ns = __pyx_t_6;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":428
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":435
  *         if c_node.type == tree.XML_ELEMENT_NODE:
  *             c_ns = c_node.nsDef
  *             while c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -17738,7 +17970,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_t_4 = ((__pyx_v_c_ns != NULL) != 0);
         if (!__pyx_t_4) break;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":429
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":436
  *             c_ns = c_node.nsDef
  *             while c_ns is not NULL:
  *                 if c_ns.href is not NULL and tree.xmlStrcmp(c_href, c_ns.href) == 0:             # <<<<<<<<<<<<<<
@@ -17754,7 +17986,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         }
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":430
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":437
  *             while c_ns is not NULL:
  *                 if c_ns.href is not NULL and tree.xmlStrcmp(c_href, c_ns.href) == 0:
  *                     if c_ns.prefix is NULL and is_attribute:             # <<<<<<<<<<<<<<
@@ -17769,7 +18001,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           }
           if (__pyx_t_4) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":434
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":441
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -17779,7 +18011,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_t_4 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_4) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":435
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":442
  *                         # declaration that we found
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns             # <<<<<<<<<<<<<<
@@ -17793,7 +18025,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             goto __pyx_L14;
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":437
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":444
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:             # <<<<<<<<<<<<<<
@@ -17803,7 +18035,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           __pyx_t_4 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
           if (__pyx_t_4) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":439
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":446
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:
  *                         # start node is in namespace scope => found!
  *                         return c_ns             # <<<<<<<<<<<<<<
@@ -17818,7 +18050,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         }
         __pyx_L13:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":440
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":447
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  *                 c_ns = c_ns.next             # <<<<<<<<<<<<<<
@@ -17829,7 +18061,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_v_c_ns = __pyx_t_6;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":441
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":448
  *                         return c_ns
  *                 c_ns = c_ns.next
  *             if c_node is not c_element and c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -17845,7 +18077,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
       }
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":443
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":450
  *             if c_node is not c_element and c_node.ns is not NULL:
  *                 # optimise: the node may have the namespace itself
  *                 c_ns = c_node.ns             # <<<<<<<<<<<<<<
@@ -17855,7 +18087,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_t_6 = __pyx_v_c_node->ns;
         __pyx_v_c_ns = __pyx_t_6;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":444
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":451
  *                 # optimise: the node may have the namespace itself
  *                 c_ns = c_node.ns
  *                 if c_ns.href is not NULL and tree.xmlStrcmp(c_href, c_ns.href) == 0:             # <<<<<<<<<<<<<<
@@ -17871,7 +18103,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         }
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":445
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":452
  *                 c_ns = c_node.ns
  *                 if c_ns.href is not NULL and tree.xmlStrcmp(c_href, c_ns.href) == 0:
  *                     if c_ns.prefix is NULL and is_attribute:             # <<<<<<<<<<<<<<
@@ -17886,7 +18118,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           }
           if (__pyx_t_2) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":449
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":456
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -17896,7 +18128,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_t_2 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_2) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":450
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":457
  *                         # declaration that we found
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns             # <<<<<<<<<<<<<<
@@ -17910,7 +18142,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             goto __pyx_L18;
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":452
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":459
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:             # <<<<<<<<<<<<<<
@@ -17920,7 +18152,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           __pyx_t_2 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
           if (__pyx_t_2) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":454
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":461
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:
  *                         # start node is in namespace scope => found!
  *                         return c_ns             # <<<<<<<<<<<<<<
@@ -17941,7 +18173,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     }
     __pyx_L10:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":455
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":462
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  *         c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -17952,7 +18184,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_v_c_node = __pyx_t_5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":457
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":464
  *         c_node = c_node.parent
  *     # nothing found => use a matching default namespace or fail
  *     if c_default_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -17962,7 +18194,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_2 = ((__pyx_v_c_default_ns != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":458
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":465
  *     # nothing found => use a matching default namespace or fail
  *     if c_default_ns is not NULL:
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:             # <<<<<<<<<<<<<<
@@ -17972,7 +18204,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_2 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, NULL) == __pyx_v_c_default_ns) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":459
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":466
  *     if c_default_ns is not NULL:
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:
  *             return c_default_ns             # <<<<<<<<<<<<<<
@@ -17986,7 +18218,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   }
   __pyx_L20:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":460
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":467
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:
  *             return c_default_ns
  *     return NULL             # <<<<<<<<<<<<<<
@@ -17996,7 +18228,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":404
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":411
  *     return 0
  * 
  * cdef xmlNs* _searchNsByHref(xmlNode* c_node, const_xmlChar* c_href, bint is_attribute):             # <<<<<<<<<<<<<<
@@ -18010,7 +18242,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":462
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":469
  *     return NULL
  * 
  * cdef int _replaceNodeByChildren(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -18031,7 +18263,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_replaceNodeByChildren", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":466
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":473
  *     cdef xmlNode* c_parent
  *     cdef xmlNode* c_child
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -18041,7 +18273,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_1 = ((__pyx_v_c_node->children == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":467
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":474
  *     cdef xmlNode* c_child
  *     if c_node.children is NULL:
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -18050,7 +18282,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":468
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":475
  *     if c_node.children is NULL:
  *         tree.xmlUnlinkNode(c_node)
  *         return 0             # <<<<<<<<<<<<<<
@@ -18061,7 +18293,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":470
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":477
  *         return 0
  * 
  *     c_parent = c_node.parent             # <<<<<<<<<<<<<<
@@ -18071,7 +18303,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_2 = __pyx_v_c_node->parent;
   __pyx_v_c_parent = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":472
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":479
  *     c_parent = c_node.parent
  *     # fix parent links of children
  *     c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -18081,7 +18313,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_2 = __pyx_v_c_node->children;
   __pyx_v_c_child = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":473
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":480
  *     # fix parent links of children
  *     c_child = c_node.children
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -18092,7 +18324,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":474
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":481
  *     c_child = c_node.children
  *     while c_child is not NULL:
  *         c_child.parent = c_parent             # <<<<<<<<<<<<<<
@@ -18101,7 +18333,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
     __pyx_v_c_child->parent = __pyx_v_c_parent;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":475
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":482
  *     while c_child is not NULL:
  *         c_child.parent = c_parent
  *         c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -18112,7 +18344,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_v_c_child = __pyx_t_2;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":479
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":486
  *     # fix namespace references of children if their parent's namespace
  *     # declarations get lost
  *     if c_node.nsDef is not NULL:             # <<<<<<<<<<<<<<
@@ -18122,7 +18354,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_1 = ((__pyx_v_c_node->nsDef != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":480
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":487
  *     # declarations get lost
  *     if c_node.nsDef is not NULL:
  *         c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -18132,7 +18364,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_2 = __pyx_v_c_node->children;
     __pyx_v_c_child = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":481
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":488
  *     if c_node.nsDef is not NULL:
  *         c_child = c_node.children
  *         while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -18143,16 +18375,16 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
       __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":482
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":489
  *         c_child = c_node.children
  *         while c_child is not NULL:
  *             moveNodeToDocument(doc, doc._c_doc, c_child)             # <<<<<<<<<<<<<<
  *             c_child = c_child.next
  * 
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_moveNodeToDocument(__pyx_v_doc, __pyx_v_doc->_c_doc, __pyx_v_c_child); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_moveNodeToDocument(__pyx_v_doc, __pyx_v_doc->_c_doc, __pyx_v_c_child); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":483
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":490
  *         while c_child is not NULL:
  *             moveNodeToDocument(doc, doc._c_doc, c_child)
  *             c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -18166,7 +18398,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":486
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":493
  * 
  *     # fix sibling links to/from child slice
  *     if c_node.prev is NULL:             # <<<<<<<<<<<<<<
@@ -18176,7 +18408,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_1 = ((__pyx_v_c_node->prev == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":487
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":494
  *     # fix sibling links to/from child slice
  *     if c_node.prev is NULL:
  *         c_parent.children = c_node.children             # <<<<<<<<<<<<<<
@@ -18189,7 +18421,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":489
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":496
  *         c_parent.children = c_node.children
  *     else:
  *         c_node.prev.next = c_node.children             # <<<<<<<<<<<<<<
@@ -18199,7 +18431,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_2 = __pyx_v_c_node->children;
     __pyx_v_c_node->prev->next = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":490
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":497
  *     else:
  *         c_node.prev.next = c_node.children
  *         c_node.children.prev = c_node.prev             # <<<<<<<<<<<<<<
@@ -18211,7 +18443,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":491
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":498
  *         c_node.prev.next = c_node.children
  *         c_node.children.prev = c_node.prev
  *     if c_node.next is NULL:             # <<<<<<<<<<<<<<
@@ -18221,7 +18453,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_t_1 = ((__pyx_v_c_node->next == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":492
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":499
  *         c_node.children.prev = c_node.prev
  *     if c_node.next is NULL:
  *         c_parent.last = c_node.last             # <<<<<<<<<<<<<<
@@ -18234,7 +18466,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":494
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":501
  *         c_parent.last = c_node.last
  *     else:
  *         c_node.next.prev = c_node.last             # <<<<<<<<<<<<<<
@@ -18244,7 +18476,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_2 = __pyx_v_c_node->last;
     __pyx_v_c_node->next->prev = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":495
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":502
  *     else:
  *         c_node.next.prev = c_node.last
  *         c_node.last.next = c_node.next             # <<<<<<<<<<<<<<
@@ -18256,7 +18488,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":505
  * 
  *     # unlink c_node
  *     c_node.children = c_node.last = NULL             # <<<<<<<<<<<<<<
@@ -18266,7 +18498,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_v_c_node->children = NULL;
   __pyx_v_c_node->last = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":499
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":506
  *     # unlink c_node
  *     c_node.children = c_node.last = NULL
  *     c_node.parent = c_node.next = c_node.prev = NULL             # <<<<<<<<<<<<<<
@@ -18277,7 +18509,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_v_c_node->next = NULL;
   __pyx_v_c_node->prev = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":507
  *     c_node.children = c_node.last = NULL
  *     c_node.parent = c_node.next = c_node.prev = NULL
  *     return 0             # <<<<<<<<<<<<<<
@@ -18287,7 +18519,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":462
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":469
  *     return NULL
  * 
  * cdef int _replaceNodeByChildren(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -18304,7 +18536,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":502
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":509
  *     return 0
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):             # <<<<<<<<<<<<<<
@@ -18333,7 +18565,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attributeValue", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":503
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":510
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):
  *     c_href = _getNs(<xmlNode*>c_attrib_node)             # <<<<<<<<<<<<<<
@@ -18342,7 +18574,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
  */
   __pyx_v_c_href = _getNs(((xmlNode *)__pyx_v_c_attrib_node));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":504
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":511
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):
  *     c_href = _getNs(<xmlNode*>c_attrib_node)
  *     value = tree.xmlGetNsProp(c_element, c_attrib_node.name, c_href)             # <<<<<<<<<<<<<<
@@ -18351,7 +18583,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
  */
   __pyx_v_value = xmlGetNsProp(__pyx_v_c_element, __pyx_v_c_attrib_node->name, __pyx_v_c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":505
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":512
  *     c_href = _getNs(<xmlNode*>c_attrib_node)
  *     value = tree.xmlGetNsProp(c_element, c_attrib_node.name, c_href)
  *     try:             # <<<<<<<<<<<<<<
@@ -18360,20 +18592,20 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":506
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":513
  *     value = tree.xmlGetNsProp(c_element, c_attrib_node.name, c_href)
  *     try:
  *         result = funicode(value)             # <<<<<<<<<<<<<<
  *     finally:
  *         tree.xmlFree(value)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":515
  *         result = funicode(value)
  *     finally:
  *         tree.xmlFree(value)             # <<<<<<<<<<<<<<
@@ -18418,7 +18650,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
     __pyx_L5:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":509
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":516
  *     finally:
  *         tree.xmlFree(value)
  *     return result             # <<<<<<<<<<<<<<
@@ -18430,7 +18662,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":502
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":509
  *     return 0
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):             # <<<<<<<<<<<<<<
@@ -18450,7 +18682,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":511
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":518
  *     return result
  * 
  * cdef object _attributeValueFromNsName(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -18479,7 +18711,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attributeValueFromNsName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":513
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":520
  * cdef object _attributeValueFromNsName(xmlNode* c_element,
  *                                       const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)             # <<<<<<<<<<<<<<
@@ -18488,7 +18720,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
  */
   __pyx_v_c_result = xmlGetNsProp(__pyx_v_c_element, __pyx_v_c_name, __pyx_v_c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":514
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":521
  *                                       const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)
  *     if c_result is NULL:             # <<<<<<<<<<<<<<
@@ -18498,7 +18730,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   __pyx_t_1 = ((__pyx_v_c_result == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":515
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":522
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)
  *     if c_result is NULL:
  *         return None             # <<<<<<<<<<<<<<
@@ -18511,7 +18743,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":516
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":523
  *     if c_result is NULL:
  *         return None
  *     try:             # <<<<<<<<<<<<<<
@@ -18520,20 +18752,20 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":517
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":524
  *         return None
  *     try:
  *         result = funicode(c_result)             # <<<<<<<<<<<<<<
  *     finally:
  *         tree.xmlFree(c_result)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_result = __pyx_t_2;
     __pyx_t_2 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":519
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":526
  *         result = funicode(c_result)
  *     finally:
  *         tree.xmlFree(c_result)             # <<<<<<<<<<<<<<
@@ -18578,7 +18810,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
     __pyx_L6:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":527
  *     finally:
  *         tree.xmlFree(c_result)
  *     return result             # <<<<<<<<<<<<<<
@@ -18590,7 +18822,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":511
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":518
  *     return result
  * 
  * cdef object _attributeValueFromNsName(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -18610,7 +18842,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":522
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":529
  *     return result
  * 
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):             # <<<<<<<<<<<<<<
@@ -18645,14 +18877,14 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getNodeAttributeValue", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":530
  * 
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):
  *     ns, tag = _getNsTag(key)             # <<<<<<<<<<<<<<
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     c_result = tree.xmlGetNsProp(c_node, _xcstr(tag), c_href)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -18664,7 +18896,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -18672,21 +18904,21 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":524
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":531
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -18701,7 +18933,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   }
   __pyx_v_c_href = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":525
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":532
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     c_result = tree.xmlGetNsProp(c_node, _xcstr(tag), c_href)             # <<<<<<<<<<<<<<
@@ -18710,7 +18942,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  */
   __pyx_v_c_result = xmlGetNsProp(__pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag), __pyx_v_c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":526
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":533
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     c_result = tree.xmlGetNsProp(c_node, _xcstr(tag), c_href)
  *     if c_result is NULL:             # <<<<<<<<<<<<<<
@@ -18720,7 +18952,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   __pyx_t_5 = ((__pyx_v_c_result == NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":528
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":535
  *     if c_result is NULL:
  *         # XXX free namespace that is not in use..?
  *         return default             # <<<<<<<<<<<<<<
@@ -18733,7 +18965,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":529
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":536
  *         # XXX free namespace that is not in use..?
  *         return default
  *     try:             # <<<<<<<<<<<<<<
@@ -18742,20 +18974,20 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":530
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":537
  *         return default
  *     try:
  *         result = funicode(c_result)             # <<<<<<<<<<<<<<
  *     finally:
  *         tree.xmlFree(c_result)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":532
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":539
  *         result = funicode(c_result)
  *     finally:
  *         tree.xmlFree(c_result)             # <<<<<<<<<<<<<<
@@ -18802,7 +19034,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     __pyx_L6:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":533
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":540
  *     finally:
  *         tree.xmlFree(c_result)
  *     return result             # <<<<<<<<<<<<<<
@@ -18814,7 +19046,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":522
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":529
  *     return result
  * 
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):             # <<<<<<<<<<<<<<
@@ -18838,7 +19070,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":535
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":542
  *     return result
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):             # <<<<<<<<<<<<<<
@@ -18855,7 +19087,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__getAttributeValue(struct Lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getAttributeValue", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":536
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":543
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):
  *     return _getNodeAttributeValue(element._c_node, key, default)             # <<<<<<<<<<<<<<
@@ -18863,13 +19095,13 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__getAttributeValue(struct Lx
  * cdef int _setAttributeValue(_Element element, key, value) except -1:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNodeAttributeValue(__pyx_v_element->_c_node, __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNodeAttributeValue(__pyx_v_element->_c_node, __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":535
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":542
  *     return result
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):             # <<<<<<<<<<<<<<
@@ -18888,7 +19120,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__getAttributeValue(struct Lx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":538
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":545
  *     return _getNodeAttributeValue(element._c_node, key, default)
  * 
  * cdef int _setAttributeValue(_Element element, key, value) except -1:             # <<<<<<<<<<<<<<
@@ -18917,14 +19149,14 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __Pyx_RefNannySetupContext("_setAttributeValue", 0);
   __Pyx_INCREF(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":540
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":547
  * cdef int _setAttributeValue(_Element element, key, value) except -1:
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(key)             # <<<<<<<<<<<<<<
  *     if not element._doc._parser._for_html:
  *         _attributeValidOrRaise(tag)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -18936,7 +19168,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -18944,21 +19176,21 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":541
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":548
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(key)
  *     if not element._doc._parser._for_html:             # <<<<<<<<<<<<<<
@@ -18968,19 +19200,19 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_4 = ((!(__pyx_v_element->_doc->_parser->_for_html != 0)) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":542
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":549
  *     ns, tag = _getNsTag(key)
  *     if not element._doc._parser._for_html:
  *         _attributeValidOrRaise(tag)             # <<<<<<<<<<<<<<
  *     c_tag = _xcstr(tag)
  *     if isinstance(value, QName):
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_tag); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_tag); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":543
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":550
  *     if not element._doc._parser._for_html:
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)             # <<<<<<<<<<<<<<
@@ -18989,7 +19221,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
   __pyx_v_c_tag = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":544
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":551
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)
  *     if isinstance(value, QName):             # <<<<<<<<<<<<<<
@@ -19000,14 +19232,14 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_6 = (__pyx_t_4 != 0);
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":545
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":552
  *     c_tag = _xcstr(tag)
  *     if isinstance(value, QName):
  *         value = _resolveQNameText(element, value)             # <<<<<<<<<<<<<<
  *     else:
  *         value = _utf8(value)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_element, __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_element, __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
     __pyx_t_1 = 0;
@@ -19015,21 +19247,21 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":554
  *         value = _resolveQNameText(element, value)
  *     else:
  *         value = _utf8(value)             # <<<<<<<<<<<<<<
  *     c_value = _xcstr(value)
  *     if ns is None:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":548
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":555
  *     else:
  *         value = _utf8(value)
  *     c_value = _xcstr(value)             # <<<<<<<<<<<<<<
@@ -19038,7 +19270,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
   __pyx_v_c_value = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":549
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":556
  *         value = _utf8(value)
  *     c_value = _xcstr(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -19049,7 +19281,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_4 = (__pyx_t_6 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":550
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":557
  *     c_value = _xcstr(value)
  *     if ns is None:
  *         c_ns = NULL             # <<<<<<<<<<<<<<
@@ -19061,19 +19293,19 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":552
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":559
  *         c_ns = NULL
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(element._c_node, _xcstr(ns), NULL, 1)             # <<<<<<<<<<<<<<
  *     tree.xmlSetNsProp(element._c_node, c_ns, c_tag, c_value)
  *     return 0
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 1); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 1); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_ns = __pyx_t_7;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":553
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":560
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(element._c_node, _xcstr(ns), NULL, 1)
  *     tree.xmlSetNsProp(element._c_node, c_ns, c_tag, c_value)             # <<<<<<<<<<<<<<
@@ -19082,7 +19314,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
   xmlSetNsProp(__pyx_v_element->_c_node, __pyx_v_c_ns, __pyx_v_c_tag, __pyx_v_c_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":554
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":561
  *         c_ns = element._doc._findOrBuildNodeNs(element._c_node, _xcstr(ns), NULL, 1)
  *     tree.xmlSetNsProp(element._c_node, c_ns, c_tag, c_value)
  *     return 0             # <<<<<<<<<<<<<<
@@ -19092,7 +19324,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":538
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":545
  *     return _getNodeAttributeValue(element._c_node, key, default)
  * 
  * cdef int _setAttributeValue(_Element element, key, value) except -1:             # <<<<<<<<<<<<<<
@@ -19115,7 +19347,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":556
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":563
  *     return 0
  * 
  * cdef int _delAttribute(_Element element, key) except -1:             # <<<<<<<<<<<<<<
@@ -19139,14 +19371,14 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_delAttribute", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":557
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":564
  * 
  * cdef int _delAttribute(_Element element, key) except -1:
  *     ns, tag = _getNsTag(key)             # <<<<<<<<<<<<<<
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -19158,7 +19390,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -19166,21 +19398,21 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":558
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":565
  * cdef int _delAttribute(_Element element, key) except -1:
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -19195,7 +19427,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   }
   __pyx_v_c_href = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":559
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":566
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):             # <<<<<<<<<<<<<<
@@ -19205,7 +19437,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   __pyx_t_5 = (__pyx_f_4lxml_5etree__delAttributeFromNsName(__pyx_v_element->_c_node, __pyx_v_c_href, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag)) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":560
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":567
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):
  *         raise KeyError, key             # <<<<<<<<<<<<<<
@@ -19213,10 +19445,10 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
  * 
  */
     __Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":561
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":568
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):
  *         raise KeyError, key
  *     return 0             # <<<<<<<<<<<<<<
@@ -19226,7 +19458,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":556
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":563
  *     return 0
  * 
  * cdef int _delAttribute(_Element element, key) except -1:             # <<<<<<<<<<<<<<
@@ -19248,7 +19480,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":563
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":570
  *     return 0
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -19263,7 +19495,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_delAttributeFromNsName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":564
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":571
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_attr = tree.xmlHasNsProp(c_node, c_name, c_href)             # <<<<<<<<<<<<<<
@@ -19272,7 +19504,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
  */
   __pyx_v_c_attr = xmlHasNsProp(__pyx_v_c_node, __pyx_v_c_name, __pyx_v_c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":565
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":572
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_attr = tree.xmlHasNsProp(c_node, c_name, c_href)
  *     if c_attr is NULL:             # <<<<<<<<<<<<<<
@@ -19282,7 +19514,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   __pyx_t_1 = ((__pyx_v_c_attr == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":567
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":574
  *     if c_attr is NULL:
  *         # XXX free namespace that is not in use..?
  *         return -1             # <<<<<<<<<<<<<<
@@ -19293,7 +19525,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":568
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":575
  *         # XXX free namespace that is not in use..?
  *         return -1
  *     tree.xmlRemoveProp(c_attr)             # <<<<<<<<<<<<<<
@@ -19302,7 +19534,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
  */
   xmlRemoveProp(__pyx_v_c_attr);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":569
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":576
  *         return -1
  *     tree.xmlRemoveProp(c_attr)
  *     return 0             # <<<<<<<<<<<<<<
@@ -19312,7 +19544,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":563
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":570
  *     return 0
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -19326,7 +19558,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":571
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":578
  *     return 0
  * 
  * cdef list _collectAttributes(xmlNode* c_node, int collecttype):             # <<<<<<<<<<<<<<
@@ -19351,7 +19583,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_collectAttributes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":576
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":583
  *     """
  *     cdef Py_ssize_t count
  *     c_attr = c_node.properties             # <<<<<<<<<<<<<<
@@ -19361,7 +19593,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_t_1 = __pyx_v_c_node->properties;
   __pyx_v_c_attr = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":577
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":584
  *     cdef Py_ssize_t count
  *     c_attr = c_node.properties
  *     count = 0             # <<<<<<<<<<<<<<
@@ -19370,7 +19602,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
   __pyx_v_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":578
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":585
  *     c_attr = c_node.properties
  *     count = 0
  *     while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -19381,7 +19613,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":579
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":586
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -19391,7 +19623,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_t_2 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":580
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":587
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             count += 1             # <<<<<<<<<<<<<<
@@ -19403,7 +19635,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":581
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":588
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             count += 1
  *         c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -19414,7 +19646,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_v_c_attr = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":583
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":590
  *         c_attr = c_attr.next
  * 
  *     if not count:             # <<<<<<<<<<<<<<
@@ -19424,7 +19656,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_t_2 = ((!(__pyx_v_count != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":584
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":591
  * 
  *     if not count:
  *         return []             # <<<<<<<<<<<<<<
@@ -19432,21 +19664,21 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *     attributes = [None] * count
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = ((PyObject*)__pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":586
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":593
  *         return []
  * 
  *     attributes = [None] * count             # <<<<<<<<<<<<<<
  *     c_attr = c_node.properties
  *     count = 0
  */
-  __pyx_t_3 = PyList_New(1 * ((__pyx_v_count<0) ? 0:__pyx_v_count)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyList_New(1 * ((__pyx_v_count<0) ? 0:__pyx_v_count)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   { Py_ssize_t __pyx_temp;
     for (__pyx_temp=0; __pyx_temp < __pyx_v_count; __pyx_temp++) {
@@ -19458,7 +19690,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_v_attributes = ((PyObject*)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":587
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":594
  * 
  *     attributes = [None] * count
  *     c_attr = c_node.properties             # <<<<<<<<<<<<<<
@@ -19468,7 +19700,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_t_1 = __pyx_v_c_node->properties;
   __pyx_v_c_attr = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":588
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":595
  *     attributes = [None] * count
  *     c_attr = c_node.properties
  *     count = 0             # <<<<<<<<<<<<<<
@@ -19477,7 +19709,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
   __pyx_v_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":589
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":596
  *     c_attr = c_node.properties
  *     count = 0
  *     while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -19488,7 +19720,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":590
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":597
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -19498,7 +19730,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_t_2 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":593
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":600
  *             if collecttype == 1:
  *                 item = _namespacedName(<xmlNode*>c_attr)
  *             elif collecttype == 2:             # <<<<<<<<<<<<<<
@@ -19507,7 +19739,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
       switch (__pyx_v_collecttype) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":591
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":598
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             if collecttype == 1:             # <<<<<<<<<<<<<<
@@ -19516,20 +19748,20 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
         case 1:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":592
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":599
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             if collecttype == 1:
  *                 item = _namespacedName(<xmlNode*>c_attr)             # <<<<<<<<<<<<<<
  *             elif collecttype == 2:
  *                 item = _attributeValue(c_node, c_attr)
  */
-        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
         break;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":593
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":600
  *             if collecttype == 1:
  *                 item = _namespacedName(<xmlNode*>c_attr)
  *             elif collecttype == 2:             # <<<<<<<<<<<<<<
@@ -19538,48 +19770,48 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
         case 2:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":594
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":601
  *                 item = _namespacedName(<xmlNode*>c_attr)
  *             elif collecttype == 2:
  *                 item = _attributeValue(c_node, c_attr)             # <<<<<<<<<<<<<<
  *             else:
  *                 item = (_namespacedName(<xmlNode*>c_attr),
  */
-        __pyx_t_3 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
         break;
         default:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":596
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":603
  *                 item = _attributeValue(c_node, c_attr)
  *             else:
  *                 item = (_namespacedName(<xmlNode*>c_attr),             # <<<<<<<<<<<<<<
  *                         _attributeValue(c_node, c_attr))
  *             attributes[count] = item
  */
-        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":597
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":604
  *             else:
  *                 item = (_namespacedName(<xmlNode*>c_attr),
  *                         _attributeValue(c_node, c_attr))             # <<<<<<<<<<<<<<
  *             attributes[count] = item
  *             count += 1
  */
-        __pyx_t_4 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":596
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":603
  *                 item = _attributeValue(c_node, c_attr)
  *             else:
  *                 item = (_namespacedName(<xmlNode*>c_attr),             # <<<<<<<<<<<<<<
  *                         _attributeValue(c_node, c_attr))
  *             attributes[count] = item
  */
-        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
         __Pyx_GIVEREF(__pyx_t_3);
@@ -19592,16 +19824,16 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
         break;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":598
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":605
  *                 item = (_namespacedName(<xmlNode*>c_attr),
  *                         _attributeValue(c_node, c_attr))
  *             attributes[count] = item             # <<<<<<<<<<<<<<
  *             count += 1
  *         c_attr = c_attr.next
  */
-      if (unlikely(__Pyx_SetItemInt(__pyx_v_attributes, __pyx_v_count, __pyx_v_item, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(__Pyx_SetItemInt(__pyx_v_attributes, __pyx_v_count, __pyx_v_item, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":599
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":606
  *                         _attributeValue(c_node, c_attr))
  *             attributes[count] = item
  *             count += 1             # <<<<<<<<<<<<<<
@@ -19613,7 +19845,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":600
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":607
  *             attributes[count] = item
  *             count += 1
  *         c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -19624,7 +19856,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_v_c_attr = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":601
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":608
  *             count += 1
  *         c_attr = c_attr.next
  *     return attributes             # <<<<<<<<<<<<<<
@@ -19636,7 +19868,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_r = __pyx_v_attributes;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":571
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":578
  *     return 0
  * 
  * cdef list _collectAttributes(xmlNode* c_node, int collecttype):             # <<<<<<<<<<<<<<
@@ -19659,7 +19891,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":609
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":616
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
  * 
  * cdef object _stripEncodingDeclaration(object xml_string):             # <<<<<<<<<<<<<<
@@ -19677,7 +19909,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_stripEncodingDeclaration", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":611
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":618
  * cdef object _stripEncodingDeclaration(object xml_string):
  *     # this is a hack to remove the XML encoding declaration from unicode
  *     return __REPLACE_XML_ENCODING(ur'\g<1>\g<2>', xml_string)             # <<<<<<<<<<<<<<
@@ -19685,7 +19917,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_kp_u_g_1_g_2);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_g_1_g_2);
@@ -19693,14 +19925,14 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   __Pyx_INCREF(__pyx_v_xml_string);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_xml_string);
   __Pyx_GIVEREF(__pyx_v_xml_string);
-  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":609
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":616
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
  * 
  * cdef object _stripEncodingDeclaration(object xml_string):             # <<<<<<<<<<<<<<
@@ -19720,7 +19952,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":613
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":620
  *     return __REPLACE_XML_ENCODING(ur'\g<1>\g<2>', xml_string)
  * 
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:             # <<<<<<<<<<<<<<
@@ -19739,19 +19971,19 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_hasEncodingDeclaration", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":615
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":622
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:
  *     # check if a (unicode) string has an XML encoding declaration
  *     return __HAS_XML_ENCODING(xml_string) is not None             # <<<<<<<<<<<<<<
  * 
  * cdef inline bint _hasText(xmlNode* c_node):
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_xml_string);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_xml_string);
   __Pyx_GIVEREF(__pyx_v_xml_string);
-  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree___HAS_XML_ENCODING, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree___HAS_XML_ENCODING, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = (__pyx_t_2 != Py_None);
@@ -19759,7 +19991,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":613
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":620
  *     return __REPLACE_XML_ENCODING(ur'\g<1>\g<2>', xml_string)
  * 
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:             # <<<<<<<<<<<<<<
@@ -19778,7 +20010,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":617
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":624
  *     return __HAS_XML_ENCODING(xml_string) is not None
  * 
  * cdef inline bint _hasText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -19794,7 +20026,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_hasText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":618
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":625
  * 
  * cdef inline bint _hasText(xmlNode* c_node):
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL             # <<<<<<<<<<<<<<
@@ -19811,7 +20043,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":617
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":624
  *     return __HAS_XML_ENCODING(xml_string) is not None
  * 
  * cdef inline bint _hasText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -19825,7 +20057,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":620
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":627
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -19841,7 +20073,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_hasTail", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":621
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":628
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL             # <<<<<<<<<<<<<<
@@ -19858,7 +20090,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":620
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":627
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -19872,7 +20104,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":623
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":630
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL
  * 
  * cdef _collectText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -19898,7 +20130,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_collectText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":634
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":641
  *     cdef xmlNode* c_node_cur
  *     # check for multiple text nodes
  *     scount = 0             # <<<<<<<<<<<<<<
@@ -19907,7 +20139,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   __pyx_v_scount = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":635
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":642
  *     # check for multiple text nodes
  *     scount = 0
  *     c_text = NULL             # <<<<<<<<<<<<<<
@@ -19916,7 +20148,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   __pyx_v_c_text = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":636
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":643
  *     scount = 0
  *     c_text = NULL
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)             # <<<<<<<<<<<<<<
@@ -19927,7 +20159,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __pyx_v_c_node_cur = __pyx_t_1;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":637
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":644
  *     c_text = NULL
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)
  *     while c_node_cur is not NULL:             # <<<<<<<<<<<<<<
@@ -19938,7 +20170,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_t_2 = ((__pyx_v_c_node_cur != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":638
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":645
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)
  *     while c_node_cur is not NULL:
  *         if c_node_cur.content[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -19948,7 +20180,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_t_2 = (((__pyx_v_c_node_cur->content[0]) != '\x00') != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":639
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":646
  *     while c_node_cur is not NULL:
  *         if c_node_cur.content[0] != c'\0':
  *             c_text = c_node_cur.content             # <<<<<<<<<<<<<<
@@ -19961,7 +20193,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":640
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":647
  *         if c_node_cur.content[0] != c'\0':
  *             c_text = c_node_cur.content
  *         scount += 1             # <<<<<<<<<<<<<<
@@ -19970,7 +20202,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
     __pyx_v_scount = (__pyx_v_scount + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":641
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":648
  *             c_text = c_node_cur.content
  *         scount += 1
  *         c_node_cur = _textNodeOrSkip(c_node_cur.next)             # <<<<<<<<<<<<<<
@@ -19980,7 +20212,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_v_c_node_cur = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_node_cur->next);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":644
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":651
  * 
  *     # handle two most common cases first
  *     if c_text is NULL:             # <<<<<<<<<<<<<<
@@ -19990,7 +20222,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __pyx_t_2 = ((__pyx_v_c_text == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":645
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":652
  *     # handle two most common cases first
  *     if c_text is NULL:
  *         return '' if scount > 0 else None             # <<<<<<<<<<<<<<
@@ -20010,7 +20242,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":646
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":653
  *     if c_text is NULL:
  *         return '' if scount > 0 else None
  *     if scount == 1:             # <<<<<<<<<<<<<<
@@ -20020,7 +20252,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __pyx_t_2 = ((__pyx_v_scount == 1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":647
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":654
  *         return '' if scount > 0 else None
  *     if scount == 1:
  *         return funicode(c_text)             # <<<<<<<<<<<<<<
@@ -20028,14 +20260,14 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *     # the rest is not performance critical anymore
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":650
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":657
  * 
  *     # the rest is not performance critical anymore
  *     result = b''             # <<<<<<<<<<<<<<
@@ -20045,7 +20277,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __Pyx_INCREF(__pyx_kp_b__15);
   __pyx_v_result = __pyx_kp_b__15;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":651
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":658
  *     # the rest is not performance critical anymore
  *     result = b''
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -20056,22 +20288,22 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":652
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":659
  *     result = b''
  *     while c_node is not NULL:
  *         result += <unsigned char*>c_node.content             # <<<<<<<<<<<<<<
  *         c_node = _textNodeOrSkip(c_node.next)
  *     return funicode(<const_xmlChar*><unsigned char*>result)
  */
-    __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_node->content)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_node->content)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":653
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":660
  *     while c_node is not NULL:
  *         result += <unsigned char*>c_node.content
  *         c_node = _textNodeOrSkip(c_node.next)             # <<<<<<<<<<<<<<
@@ -20081,7 +20313,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_v_c_node = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_node->next);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":654
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":661
  *         result += <unsigned char*>c_node.content
  *         c_node = _textNodeOrSkip(c_node.next)
  *     return funicode(<const_xmlChar*><unsigned char*>result)             # <<<<<<<<<<<<<<
@@ -20089,14 +20321,14 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  * cdef void _removeText(xmlNode* c_node):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_6 = __Pyx_PyObject_AsUString(__pyx_v_result); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)((unsigned char *)__pyx_t_6))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_AsUString(__pyx_v_result); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)((unsigned char *)__pyx_t_6))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __pyx_r = __pyx_t_5;
   __pyx_t_5 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":623
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":630
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL
  * 
  * cdef _collectText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20117,7 +20349,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":656
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":663
  *     return funicode(<const_xmlChar*><unsigned char*>result)
  * 
  * cdef void _removeText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20131,7 +20363,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_removeText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":662
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":669
  *     """
  *     cdef xmlNode* c_next
  *     c_node = _textNodeOrSkip(c_node)             # <<<<<<<<<<<<<<
@@ -20140,7 +20372,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":663
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":670
  *     cdef xmlNode* c_next
  *     c_node = _textNodeOrSkip(c_node)
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -20151,7 +20383,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":664
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":671
  *     c_node = _textNodeOrSkip(c_node)
  *     while c_node is not NULL:
  *         c_next = _textNodeOrSkip(c_node.next)             # <<<<<<<<<<<<<<
@@ -20160,7 +20392,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
     __pyx_v_c_next = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_node->next);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":665
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":672
  *     while c_node is not NULL:
  *         c_next = _textNodeOrSkip(c_node.next)
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -20169,7 +20401,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":666
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":673
  *         c_next = _textNodeOrSkip(c_node.next)
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlFreeNode(c_node)             # <<<<<<<<<<<<<<
@@ -20178,7 +20410,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
     xmlFreeNode(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":667
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":674
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlFreeNode(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -20188,7 +20420,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":656
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":663
  *     return funicode(<const_xmlChar*><unsigned char*>result)
  * 
  * cdef void _removeText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20200,7 +20432,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":669
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":676
  *         c_node = c_next
  * 
  * cdef int _setNodeText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -20222,7 +20454,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_setNodeText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":672
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":679
  *     cdef xmlNode* c_text_node
  *     # remove all text nodes at the start first
  *     _removeText(c_node.children)             # <<<<<<<<<<<<<<
@@ -20231,7 +20463,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->children);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":673
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":680
  *     # remove all text nodes at the start first
  *     _removeText(c_node.children)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -20242,7 +20474,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":674
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":681
  *     _removeText(c_node.children)
  *     if value is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -20253,7 +20485,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":676
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":683
  *         return 0
  *     # now add new text node with value at start
  *     if python._isString(value):             # <<<<<<<<<<<<<<
@@ -20263,19 +20495,19 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_2 = (_isString(__pyx_v_value) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":677
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":684
  *     # now add new text node with value at start
  *     if python._isString(value):
  *         text = _utf8(value)             # <<<<<<<<<<<<<<
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     elif isinstance(value, CDATA):
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_text = ((PyObject*)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":678
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":685
  *     if python._isString(value):
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))             # <<<<<<<<<<<<<<
@@ -20286,7 +20518,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":679
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":686
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     elif isinstance(value, CDATA):             # <<<<<<<<<<<<<<
@@ -20297,7 +20529,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":681
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":688
  *     elif isinstance(value, CDATA):
  *         c_text_node = tree.xmlNewCDataBlock(
  *             c_node.doc, _xcstr((<CDATA>value)._utf8_data),             # <<<<<<<<<<<<<<
@@ -20307,7 +20539,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data;
     __Pyx_INCREF(__pyx_t_3);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":682
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":689
  *         c_text_node = tree.xmlNewCDataBlock(
  *             c_node.doc, _xcstr((<CDATA>value)._utf8_data),
  *             python.PyBytes_GET_SIZE((<CDATA>value)._utf8_data))             # <<<<<<<<<<<<<<
@@ -20317,7 +20549,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     __pyx_t_4 = ((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data;
     __Pyx_INCREF(__pyx_t_4);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":680
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":687
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     elif isinstance(value, CDATA):
  *         c_text_node = tree.xmlNewCDataBlock(             # <<<<<<<<<<<<<<
@@ -20331,18 +20563,18 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":685
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":692
  *     else:
  *         # this will raise the right error
  *        _utf8(value)             # <<<<<<<<<<<<<<
  *        return -1
  *     if c_node.children is NULL:
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":686
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":693
  *         # this will raise the right error
  *        _utf8(value)
  *        return -1             # <<<<<<<<<<<<<<
@@ -20354,7 +20586,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":687
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":694
  *        _utf8(value)
  *        return -1
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -20364,7 +20596,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_1 = ((__pyx_v_c_node->children == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":688
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":695
  *        return -1
  *     if c_node.children is NULL:
  *         tree.xmlAddChild(c_node, c_text_node)             # <<<<<<<<<<<<<<
@@ -20376,7 +20608,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":690
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":697
  *         tree.xmlAddChild(c_node, c_text_node)
  *     else:
  *         tree.xmlAddPrevSibling(c_node.children, c_text_node)             # <<<<<<<<<<<<<<
@@ -20387,7 +20619,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":691
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":698
  *     else:
  *         tree.xmlAddPrevSibling(c_node.children, c_text_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -20397,7 +20629,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":669
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":676
  *         c_node = c_next
  * 
  * cdef int _setNodeText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -20417,7 +20649,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":693
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":700
  *     return 0
  * 
  * cdef int _setTailText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -20438,7 +20670,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_setTailText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":696
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":703
  *     cdef xmlNode* c_text_node
  *     # remove all text nodes at the start first
  *     _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -20447,7 +20679,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":697
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":704
  *     # remove all text nodes at the start first
  *     _removeText(c_node.next)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -20458,7 +20690,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":698
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":705
  *     _removeText(c_node.next)
  *     if value is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -20469,19 +20701,19 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":699
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":706
  *     if value is None:
  *         return 0
  *     text = _utf8(value)             # <<<<<<<<<<<<<<
  *     c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     # XXX what if we're the top element?
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_text = ((PyObject*)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":700
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":707
  *         return 0
  *     text = _utf8(value)
  *     c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))             # <<<<<<<<<<<<<<
@@ -20490,7 +20722,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   __pyx_v_c_text_node = xmlNewDocText(__pyx_v_c_node->doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":702
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":709
  *     c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     # XXX what if we're the top element?
  *     tree.xmlAddNextSibling(c_node, c_text_node)             # <<<<<<<<<<<<<<
@@ -20499,7 +20731,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   xmlAddNextSibling(__pyx_v_c_node, __pyx_v_c_text_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":703
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":710
  *     # XXX what if we're the top element?
  *     tree.xmlAddNextSibling(c_node, c_text_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -20509,7 +20741,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":693
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":700
  *     return 0
  * 
  * cdef int _setTailText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -20528,7 +20760,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":705
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":712
  *     return 0
  * 
  * cdef bytes _resolveQNameText(_Element element, value):             # <<<<<<<<<<<<<<
@@ -20553,14 +20785,14 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_resolveQNameText", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":707
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":714
  * cdef bytes _resolveQNameText(_Element element, value):
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(value)             # <<<<<<<<<<<<<<
  *     if ns is None:
  *         return tag
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -20572,7 +20804,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -20580,21 +20812,21 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":708
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":715
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -20605,7 +20837,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":709
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":716
  *     ns, tag = _getNsTag(value)
  *     if ns is None:
  *         return tag             # <<<<<<<<<<<<<<
@@ -20613,24 +20845,24 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  *         c_ns = element._doc._findOrBuildNodeNs(
  */
     __Pyx_XDECREF(__pyx_r);
-    if (!(likely(PyBytes_CheckExact(__pyx_v_tag))||((__pyx_v_tag) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_tag)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_v_tag))||((__pyx_v_tag) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_tag)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_INCREF(__pyx_v_tag);
     __pyx_r = ((PyObject*)__pyx_v_tag);
     goto __pyx_L0;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":711
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":718
  *         return tag
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(             # <<<<<<<<<<<<<<
  *             element._c_node, _xcstr(ns), NULL, 0)
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  */
-    __pyx_t_6 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 0); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 0); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_ns = __pyx_t_6;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":713
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":720
  *         c_ns = element._doc._findOrBuildNodeNs(
  *             element._c_node, _xcstr(ns), NULL, 0)
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))             # <<<<<<<<<<<<<<
@@ -20638,14 +20870,14 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  * cdef inline bint _hasChild(xmlNode* c_node):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = PyBytes_FromFormat(__pyx_k_s_s, __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyBytes_FromFormat(__pyx_k_s_s, __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_r = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":705
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":712
  *     return 0
  * 
  * cdef bytes _resolveQNameText(_Element element, value):             # <<<<<<<<<<<<<<
@@ -20668,7 +20900,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":715
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":722
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20684,7 +20916,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_hasChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":716
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":723
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL             # <<<<<<<<<<<<<<
@@ -20701,7 +20933,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":715
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":722
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20715,7 +20947,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":718
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":725
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL
  * 
  * cdef inline Py_ssize_t _countElements(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20731,7 +20963,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_countElements", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":721
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":728
  *     u"Counts the elements within the following siblings and the node itself."
  *     cdef Py_ssize_t count
  *     count = 0             # <<<<<<<<<<<<<<
@@ -20740,7 +20972,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  */
   __pyx_v_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":722
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":729
  *     cdef Py_ssize_t count
  *     count = 0
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -20751,7 +20983,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":723
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":730
  *     count = 0
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -20761,7 +20993,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
     __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":724
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":731
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             count += 1             # <<<<<<<<<<<<<<
@@ -20773,7 +21005,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":725
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":732
  *         if _isElement(c_node):
  *             count += 1
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -20784,7 +21016,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":726
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":733
  *             count += 1
  *         c_node = c_node.next
  *     return count             # <<<<<<<<<<<<<<
@@ -20794,7 +21026,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   __pyx_r = __pyx_v_count;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":718
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":725
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL
  * 
  * cdef inline Py_ssize_t _countElements(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -20808,7 +21040,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":728
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":735
  *     return count
  * 
  * cdef int _findChildSlice(             # <<<<<<<<<<<<<<
@@ -20831,7 +21063,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_findChildSlice", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":736
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":743
  *     pointer arguments.
  *     """
  *     cdef Py_ssize_t start = 0, stop = 0, childcount             # <<<<<<<<<<<<<<
@@ -20841,7 +21073,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_v_start = 0;
   __pyx_v_stop = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":737
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":744
  *     """
  *     cdef Py_ssize_t start = 0, stop = 0, childcount
  *     childcount = _countElements(c_parent.children)             # <<<<<<<<<<<<<<
@@ -20850,7 +21082,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
   __pyx_v_childcount = __pyx_f_4lxml_5etree__countElements(__pyx_v_c_parent->children);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":738
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":745
  *     cdef Py_ssize_t start = 0, stop = 0, childcount
  *     childcount = _countElements(c_parent.children)
  *     if childcount == 0:             # <<<<<<<<<<<<<<
@@ -20860,7 +21092,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_t_1 = ((__pyx_v_childcount == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":739
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":746
  *     childcount = _countElements(c_parent.children)
  *     if childcount == 0:
  *         c_start_node[0] = NULL             # <<<<<<<<<<<<<<
@@ -20869,7 +21101,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
     (__pyx_v_c_start_node[0]) = NULL;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":740
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":747
  *     if childcount == 0:
  *         c_start_node[0] = NULL
  *         c_length[0] = 0             # <<<<<<<<<<<<<<
@@ -20878,7 +21110,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
     (__pyx_v_c_length[0]) = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":741
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":748
  *         c_start_node[0] = NULL
  *         c_length[0] = 0
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -20889,7 +21121,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":742
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":749
  *         c_length[0] = 0
  *         if sliceobject.step is None:
  *             c_step[0] = 1             # <<<<<<<<<<<<<<
@@ -20901,7 +21133,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":744
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":751
  *             c_step[0] = 1
  *         else:
  *             python._PyEval_SliceIndex(sliceobject.step, c_step)             # <<<<<<<<<<<<<<
@@ -20910,12 +21142,12 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
       __pyx_t_3 = ((PySliceObject*)__pyx_v_sliceobject)->step;
       __Pyx_INCREF(__pyx_t_3);
-      __pyx_t_4 = _PyEval_SliceIndex(__pyx_t_3, __pyx_v_c_step); if (unlikely(__pyx_t_4 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = _PyEval_SliceIndex(__pyx_t_3, __pyx_v_c_step); if (unlikely(__pyx_t_4 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":745
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":752
  *         else:
  *             python._PyEval_SliceIndex(sliceobject.step, c_step)
  *         return 0             # <<<<<<<<<<<<<<
@@ -20926,16 +21158,16 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":746
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":753
  *             python._PyEval_SliceIndex(sliceobject.step, c_step)
  *         return 0
  *     python.PySlice_GetIndicesEx(             # <<<<<<<<<<<<<<
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:
  */
-  __pyx_t_4 = _lx_PySlice_GetIndicesEx(__pyx_v_sliceobject, __pyx_v_childcount, (&__pyx_v_start), (&__pyx_v_stop), __pyx_v_c_step, __pyx_v_c_length); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = _lx_PySlice_GetIndicesEx(__pyx_v_sliceobject, __pyx_v_childcount, (&__pyx_v_start), (&__pyx_v_stop), __pyx_v_c_step, __pyx_v_c_length); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":748
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":755
  *     python.PySlice_GetIndicesEx(
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:             # <<<<<<<<<<<<<<
@@ -20945,7 +21177,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_t_2 = ((__pyx_v_start > __Pyx_div_Py_ssize_t(__pyx_v_childcount, 2)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":749
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":756
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)             # <<<<<<<<<<<<<<
@@ -20957,7 +21189,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":751
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":758
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)
  *     else:
  *         c_start_node[0] = _findChild(c_parent, start)             # <<<<<<<<<<<<<<
@@ -20968,7 +21200,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":752
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":759
  *     else:
  *         c_start_node[0] = _findChild(c_parent, start)
  *     return 0             # <<<<<<<<<<<<<<
@@ -20978,7 +21210,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":728
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":735
  *     return count
  * 
  * cdef int _findChildSlice(             # <<<<<<<<<<<<<<
@@ -20996,7 +21228,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":754
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":761
  *     return 0
  * 
  * cdef bint _isFullSlice(slice sliceobject) except -1:             # <<<<<<<<<<<<<<
@@ -21018,7 +21250,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_isFullSlice", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":757
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":764
  *     u"""Conservative guess if this slice is a full slice as in ``s[:]``.
  *     """
  *     cdef Py_ssize_t step = 0             # <<<<<<<<<<<<<<
@@ -21027,7 +21259,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
   __pyx_v_step = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":758
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":765
  *     """
  *     cdef Py_ssize_t step = 0
  *     if sliceobject is None:             # <<<<<<<<<<<<<<
@@ -21038,7 +21270,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":766
  *     cdef Py_ssize_t step = 0
  *     if sliceobject is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -21049,7 +21281,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":760
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":767
  *     if sliceobject is None:
  *         return 0
  *     if sliceobject.start is None and \             # <<<<<<<<<<<<<<
@@ -21059,7 +21291,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_t_2 = (((PySliceObject*)__pyx_v_sliceobject)->start == Py_None);
   if ((__pyx_t_2 != 0)) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":761
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":768
  *         return 0
  *     if sliceobject.start is None and \
  *             sliceobject.stop is None:             # <<<<<<<<<<<<<<
@@ -21073,7 +21305,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":762
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":769
  *     if sliceobject.start is None and \
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -21084,7 +21316,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":763
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":770
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:
  *             return 1             # <<<<<<<<<<<<<<
@@ -21095,7 +21327,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":764
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":771
  *         if sliceobject.step is None:
  *             return 1
  *         python._PyEval_SliceIndex(sliceobject.step, &step)             # <<<<<<<<<<<<<<
@@ -21104,10 +21336,10 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
     __pyx_t_4 = ((PySliceObject*)__pyx_v_sliceobject)->step;
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_5 = _PyEval_SliceIndex(__pyx_t_4, (&__pyx_v_step)); if (unlikely(__pyx_t_5 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = _PyEval_SliceIndex(__pyx_t_4, (&__pyx_v_step)); if (unlikely(__pyx_t_5 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":765
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":772
  *             return 1
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  *         if step == 1:             # <<<<<<<<<<<<<<
@@ -21117,7 +21349,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_t_2 = ((__pyx_v_step == 1) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":766
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":773
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  *         if step == 1:
  *             return 1             # <<<<<<<<<<<<<<
@@ -21128,7 +21360,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":767
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":774
  *         if step == 1:
  *             return 1
  *         return 0             # <<<<<<<<<<<<<<
@@ -21139,7 +21371,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":768
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":775
  *             return 1
  *         return 0
  *     return 0             # <<<<<<<<<<<<<<
@@ -21149,7 +21381,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":754
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":761
  *     return 0
  * 
  * cdef bint _isFullSlice(slice sliceobject) except -1:             # <<<<<<<<<<<<<<
@@ -21167,7 +21399,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":770
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":777
  *     return 0
  * 
  * cdef _collectChildren(_Element element):             # <<<<<<<<<<<<<<
@@ -21190,19 +21422,19 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_collectChildren", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":772
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":779
  * cdef _collectChildren(_Element element):
  *     cdef xmlNode* c_node
  *     cdef list result = []             # <<<<<<<<<<<<<<
  *     c_node = element._c_node.children
  *     if c_node is not NULL:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_result = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":773
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":780
  *     cdef xmlNode* c_node
  *     cdef list result = []
  *     c_node = element._c_node.children             # <<<<<<<<<<<<<<
@@ -21212,7 +21444,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   __pyx_t_2 = __pyx_v_element->_c_node->children;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":774
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":781
  *     cdef list result = []
  *     c_node = element._c_node.children
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -21222,7 +21454,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":775
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":782
  *     c_node = element._c_node.children
  *     if c_node is not NULL:
  *         if not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -21232,7 +21464,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
     __pyx_t_3 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":776
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":783
  *     if c_node is not NULL:
  *         if not _isElement(c_node):
  *             c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -21244,7 +21476,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":777
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":784
  *         if not _isElement(c_node):
  *             c_node = _nextElement(c_node)
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -21255,7 +21487,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
       __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_3) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":778
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":785
  *             c_node = _nextElement(c_node)
  *         while c_node is not NULL:
  *             result.append(_elementFactory(element._doc, c_node))             # <<<<<<<<<<<<<<
@@ -21264,13 +21496,13 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  */
       __pyx_t_1 = ((PyObject *)__pyx_v_element->_doc);
       __Pyx_INCREF(__pyx_t_1);
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":779
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":786
  *         while c_node is not NULL:
  *             result.append(_elementFactory(element._doc, c_node))
  *             c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -21283,7 +21515,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":780
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":787
  *             result.append(_elementFactory(element._doc, c_node))
  *             c_node = _nextElement(c_node)
  *     return result             # <<<<<<<<<<<<<<
@@ -21295,7 +21527,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":770
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":777
  *     return 0
  * 
  * cdef _collectChildren(_Element element):             # <<<<<<<<<<<<<<
@@ -21316,7 +21548,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":782
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":789
  *     return result
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21330,7 +21562,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_findChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":783
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":790
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):
  *     if index < 0:             # <<<<<<<<<<<<<<
@@ -21340,7 +21572,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   __pyx_t_1 = ((__pyx_v_index < 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":784
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":791
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):
  *     if index < 0:
  *         return _findChildBackwards(c_node, -index - 1)             # <<<<<<<<<<<<<<
@@ -21352,7 +21584,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":786
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":793
  *         return _findChildBackwards(c_node, -index - 1)
  *     else:
  *         return _findChildForwards(c_node, index)             # <<<<<<<<<<<<<<
@@ -21363,7 +21595,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":789
  *     return result
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21377,7 +21609,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":788
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":795
  *         return _findChildForwards(c_node, index)
  * 
  * cdef inline xmlNode* _findChildForwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21394,7 +21626,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_findChildForwards", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":793
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":800
  *     cdef xmlNode* c_child
  *     cdef Py_ssize_t c
  *     c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -21404,7 +21636,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   __pyx_t_1 = __pyx_v_c_node->children;
   __pyx_v_c_child = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":794
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":801
  *     cdef Py_ssize_t c
  *     c_child = c_node.children
  *     c = 0             # <<<<<<<<<<<<<<
@@ -21413,7 +21645,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  */
   __pyx_v_c = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":795
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":802
  *     c_child = c_node.children
  *     c = 0
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -21424,7 +21656,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     __pyx_t_2 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":796
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":803
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -21434,7 +21666,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":797
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":804
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -21444,7 +21676,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
       __pyx_t_2 = ((__pyx_v_c == __pyx_v_index) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":798
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":805
  *         if _isElement(c_child):
  *             if c == index:
  *                 return c_child             # <<<<<<<<<<<<<<
@@ -21455,7 +21687,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
         goto __pyx_L0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":799
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":806
  *             if c == index:
  *                 return c_child
  *             c += 1             # <<<<<<<<<<<<<<
@@ -21467,7 +21699,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":800
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":807
  *                 return c_child
  *             c += 1
  *         c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -21478,7 +21710,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     __pyx_v_c_child = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":801
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":808
  *             c += 1
  *         c_child = c_child.next
  *     return NULL             # <<<<<<<<<<<<<<
@@ -21488,7 +21720,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":795
  *         return _findChildForwards(c_node, index)
  * 
  * cdef inline xmlNode* _findChildForwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21502,7 +21734,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":803
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":810
  *     return NULL
  * 
  * cdef inline xmlNode* _findChildBackwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21519,7 +21751,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_findChildBackwards", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":809
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":816
  *     cdef xmlNode* c_child
  *     cdef Py_ssize_t c
  *     c_child = c_node.last             # <<<<<<<<<<<<<<
@@ -21529,7 +21761,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   __pyx_t_1 = __pyx_v_c_node->last;
   __pyx_v_c_child = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":810
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":817
  *     cdef Py_ssize_t c
  *     c_child = c_node.last
  *     c = 0             # <<<<<<<<<<<<<<
@@ -21538,7 +21770,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  */
   __pyx_v_c = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":811
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":818
  *     c_child = c_node.last
  *     c = 0
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -21549,7 +21781,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     __pyx_t_2 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":812
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":819
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -21559,7 +21791,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":813
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":820
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -21569,7 +21801,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
       __pyx_t_2 = ((__pyx_v_c == __pyx_v_index) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":814
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":821
  *         if _isElement(c_child):
  *             if c == index:
  *                 return c_child             # <<<<<<<<<<<<<<
@@ -21580,7 +21812,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
         goto __pyx_L0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":815
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":822
  *             if c == index:
  *                 return c_child
  *             c += 1             # <<<<<<<<<<<<<<
@@ -21592,7 +21824,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":816
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":823
  *                 return c_child
  *             c += 1
  *         c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -21603,7 +21835,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     __pyx_v_c_child = __pyx_t_1;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":817
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":824
  *             c += 1
  *         c_child = c_child.prev
  *     return NULL             # <<<<<<<<<<<<<<
@@ -21613,7 +21845,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":803
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":810
  *     return NULL
  * 
  * cdef inline xmlNode* _findChildBackwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -21627,7 +21859,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":819
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":826
  *     return NULL
  * 
  * cdef inline xmlNode* _textNodeOrSkip(xmlNode* c_node) nogil:             # <<<<<<<<<<<<<<
@@ -21640,7 +21872,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":826
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":833
  *     nodes.
  *     """
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -21651,7 +21883,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":830
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":837
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \             # <<<<<<<<<<<<<<
@@ -21660,7 +21892,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
     switch (__pyx_v_c_node->type) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":827
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":834
  *     """
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_TEXT_NODE or \             # <<<<<<<<<<<<<<
@@ -21669,7 +21901,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
       case XML_TEXT_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":828
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":835
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_TEXT_NODE or \
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:             # <<<<<<<<<<<<<<
@@ -21678,7 +21910,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
       case XML_CDATA_SECTION_NODE:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":829
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":836
  *         if c_node.type == tree.XML_TEXT_NODE or \
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node             # <<<<<<<<<<<<<<
@@ -21689,7 +21921,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       goto __pyx_L0;
       break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":830
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":837
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \             # <<<<<<<<<<<<<<
@@ -21698,7 +21930,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
       case XML_XINCLUDE_START:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":831
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":838
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \
  *                  c_node.type == tree.XML_XINCLUDE_END:             # <<<<<<<<<<<<<<
@@ -21707,7 +21939,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
       case XML_XINCLUDE_END:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":832
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":839
  *         elif c_node.type == tree.XML_XINCLUDE_START or \
  *                  c_node.type == tree.XML_XINCLUDE_END:
  *             c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -21719,7 +21951,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       break;
       default:
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":834
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":841
  *             c_node = c_node.next
  *         else:
  *             return NULL             # <<<<<<<<<<<<<<
@@ -21732,7 +21964,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":835
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":842
  *         else:
  *             return NULL
  *     return NULL             # <<<<<<<<<<<<<<
@@ -21742,7 +21974,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":819
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":826
  *     return NULL
  * 
  * cdef inline xmlNode* _textNodeOrSkip(xmlNode* c_node) nogil:             # <<<<<<<<<<<<<<
@@ -21755,7 +21987,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":837
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":844
  *     return NULL
  * 
  * cdef inline xmlNode* _nextElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -21770,7 +22002,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_nextElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":840
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":847
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -21780,7 +22012,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":841
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":848
  *     """
  *     if c_node is NULL:
  *         return NULL             # <<<<<<<<<<<<<<
@@ -21791,7 +22023,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":842
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":849
  *     if c_node is NULL:
  *         return NULL
  *     c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -21801,7 +22033,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   __pyx_t_2 = __pyx_v_c_node->next;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":843
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":850
  *         return NULL
  *     c_node = c_node.next
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -21812,7 +22044,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":844
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":851
  *     c_node = c_node.next
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -21822,7 +22054,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":845
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":852
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -21833,7 +22065,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":846
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":853
  *         if _isElement(c_node):
  *             return c_node
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -21844,7 +22076,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":847
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":854
  *             return c_node
  *         c_node = c_node.next
  *     return NULL             # <<<<<<<<<<<<<<
@@ -21854,7 +22086,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":837
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":844
  *     return NULL
  * 
  * cdef inline xmlNode* _nextElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -21868,7 +22100,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":849
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":856
  *     return NULL
  * 
  * cdef inline xmlNode* _previousElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -21883,7 +22115,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_previousElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":852
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":859
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -21893,7 +22125,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":853
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":860
  *     """
  *     if c_node is NULL:
  *         return NULL             # <<<<<<<<<<<<<<
@@ -21904,7 +22136,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":854
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":861
  *     if c_node is NULL:
  *         return NULL
  *     c_node = c_node.prev             # <<<<<<<<<<<<<<
@@ -21914,7 +22146,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   __pyx_t_2 = __pyx_v_c_node->prev;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":855
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":862
  *         return NULL
  *     c_node = c_node.prev
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -21925,7 +22157,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":856
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":863
  *     c_node = c_node.prev
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -21935,7 +22167,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":857
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":864
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -21946,7 +22178,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":858
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":865
  *         if _isElement(c_node):
  *             return c_node
  *         c_node = c_node.prev             # <<<<<<<<<<<<<<
@@ -21957,7 +22189,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":859
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":866
  *             return c_node
  *         c_node = c_node.prev
  *     return NULL             # <<<<<<<<<<<<<<
@@ -21967,7 +22199,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":849
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":856
  *     return NULL
  * 
  * cdef inline xmlNode* _previousElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -21981,7 +22213,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":861
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":868
  *     return NULL
  * 
  * cdef inline xmlNode* _parentElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -21998,7 +22230,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   xmlNode *__pyx_t_4;
   __Pyx_RefNannySetupContext("_parentElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":863
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":870
  * cdef inline xmlNode* _parentElement(xmlNode* c_node):
  *     u"Given a node, find the parent element."
  *     if c_node is NULL or not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -22014,7 +22246,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":864
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":871
  *     u"Given a node, find the parent element."
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL             # <<<<<<<<<<<<<<
@@ -22025,7 +22257,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":865
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":872
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL
  *     c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -22035,7 +22267,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_t_4 = __pyx_v_c_node->parent;
   __pyx_v_c_node = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":866
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":873
  *         return NULL
  *     c_node = c_node.parent
  *     if c_node is NULL or not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -22051,7 +22283,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":867
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":874
  *     c_node = c_node.parent
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL             # <<<<<<<<<<<<<<
@@ -22062,7 +22294,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":868
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":875
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL
  *     return c_node             # <<<<<<<<<<<<<<
@@ -22072,7 +22304,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_r = __pyx_v_c_node;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":861
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":868
  *     return NULL
  * 
  * cdef inline xmlNode* _parentElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -22086,7 +22318,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":870
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":877
  *     return c_node
  * 
  * cdef inline bint _tagMatches(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -22103,7 +22335,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_tagMatches", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":884
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":891
  *     * its name string equals the c_name string
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -22113,7 +22345,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":885
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":892
  *     """
  *     if c_node is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -22124,7 +22356,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":886
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":893
  *     if c_node is NULL:
  *         return 0
  *     if c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -22134,7 +22366,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_1 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":888
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":895
  *     if c_node.type != tree.XML_ELEMENT_NODE:
  *         # not an element, only succeed if we match everything
  *         return c_name is NULL and c_href is NULL             # <<<<<<<<<<<<<<
@@ -22152,7 +22384,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":889
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":896
  *         # not an element, only succeed if we match everything
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:             # <<<<<<<<<<<<<<
@@ -22162,7 +22394,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_3 = ((__pyx_v_c_name == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":890
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":897
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:
  *         if c_href is NULL:             # <<<<<<<<<<<<<<
@@ -22172,7 +22404,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":892
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":899
  *         if c_href is NULL:
  *             # always match
  *             return 1             # <<<<<<<<<<<<<<
@@ -22184,7 +22416,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":894
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":901
  *             return 1
  *         else:
  *             c_node_href = _getNs(c_node)             # <<<<<<<<<<<<<<
@@ -22193,7 +22425,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
       __pyx_v_c_node_href = _getNs(__pyx_v_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":895
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":902
  *         else:
  *             c_node_href = _getNs(c_node)
  *             if c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -22203,7 +22435,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       __pyx_t_3 = ((__pyx_v_c_node_href == NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":896
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":903
  *             c_node_href = _getNs(c_node)
  *             if c_node_href is NULL:
  *                 return c_href[0] == c'\0'             # <<<<<<<<<<<<<<
@@ -22215,7 +22447,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":898
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":905
  *                 return c_href[0] == c'\0'
  *             else:
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0             # <<<<<<<<<<<<<<
@@ -22228,7 +22460,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":899
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":906
  *             else:
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:             # <<<<<<<<<<<<<<
@@ -22238,7 +22470,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":900
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":907
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:
  *         if _getNs(c_node) is not NULL:             # <<<<<<<<<<<<<<
@@ -22248,7 +22480,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_t_3 = ((_getNs(__pyx_v_c_node) != NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":901
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":908
  *     elif c_href is NULL:
  *         if _getNs(c_node) is not NULL:
  *             return 0             # <<<<<<<<<<<<<<
@@ -22259,7 +22491,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":902
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":909
  *         if _getNs(c_node) is not NULL:
  *             return 0
  *         return c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0             # <<<<<<<<<<<<<<
@@ -22277,7 +22509,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":903
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":910
  *             return 0
  *         return c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0
  *     elif c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0:             # <<<<<<<<<<<<<<
@@ -22293,7 +22525,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":904
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":911
  *         return c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0
  *     elif c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0:
  *         c_node_href = _getNs(c_node)             # <<<<<<<<<<<<<<
@@ -22302,7 +22534,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
     __pyx_v_c_node_href = _getNs(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":905
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":912
  *     elif c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0:
  *         c_node_href = _getNs(c_node)
  *         if c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -22312,7 +22544,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = ((__pyx_v_c_node_href == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":906
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":913
  *         c_node_href = _getNs(c_node)
  *         if c_node_href is NULL:
  *             return c_href[0] == c'\0'             # <<<<<<<<<<<<<<
@@ -22324,7 +22556,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":908
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":915
  *             return c_href[0] == c'\0'
  *         else:
  *             return tree.xmlStrcmp(c_node_href, c_href) == 0             # <<<<<<<<<<<<<<
@@ -22337,7 +22569,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":910
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":917
  *             return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     else:
  *         return 0             # <<<<<<<<<<<<<<
@@ -22348,7 +22580,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":877
  *     return c_node
  * 
  * cdef inline bint _tagMatches(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -22362,7 +22594,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":912
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":919
  *         return 0
  * 
  * cdef inline bint _tagMatchesExactly(xmlNode* c_node, qname* c_qname):             # <<<<<<<<<<<<<<
@@ -22375,7 +22607,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_tagMatchesExactly", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":930
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":937
  *     * its name string points to the same address (!) as c_name
  *     """
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)             # <<<<<<<<<<<<<<
@@ -22385,7 +22617,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
   __pyx_r = __pyx_f_4lxml_5etree__nsTagMatchesExactly(_getNs(__pyx_v_c_node), __pyx_v_c_node->name, __pyx_v_c_qname);
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":912
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":919
  *         return 0
  * 
  * cdef inline bint _tagMatchesExactly(xmlNode* c_node, qname* c_qname):             # <<<<<<<<<<<<<<
@@ -22399,7 +22631,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":932
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":939
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)
  * 
  * cdef inline bint _nsTagMatchesExactly(const_xmlChar* c_node_href,             # <<<<<<<<<<<<<<
@@ -22416,7 +22648,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_nsTagMatchesExactly", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":953
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":960
  *     """
  *     cdef char* c_href
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:             # <<<<<<<<<<<<<<
@@ -22432,7 +22664,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":954
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":961
  *     cdef char* c_href
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:
  *         return 0             # <<<<<<<<<<<<<<
@@ -22443,7 +22675,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":955
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":962
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:
  *         return 0
  *     if c_qname.href is NULL:             # <<<<<<<<<<<<<<
@@ -22453,7 +22685,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_3 = ((__pyx_v_c_qname->href == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":956
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":963
  *         return 0
  *     if c_qname.href is NULL:
  *         return 1             # <<<<<<<<<<<<<<
@@ -22464,7 +22696,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":957
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":964
  *     if c_qname.href is NULL:
  *         return 1
  *     c_href = python.__cstr(c_qname.href)             # <<<<<<<<<<<<<<
@@ -22473,7 +22705,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   __pyx_v_c_href = PyBytes_AS_STRING(__pyx_v_c_qname->href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":958
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":965
  *         return 1
  *     c_href = python.__cstr(c_qname.href)
  *     if c_href[0] == '\0':             # <<<<<<<<<<<<<<
@@ -22483,7 +22715,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_3 = (((__pyx_v_c_href[0]) == '\x00') != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":959
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":966
  *     c_href = python.__cstr(c_qname.href)
  *     if c_href[0] == '\0':
  *         return c_node_href is NULL or c_node_href[0] == '\0'             # <<<<<<<<<<<<<<
@@ -22501,7 +22733,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":960
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":967
  *     if c_href[0] == '\0':
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -22511,7 +22743,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_2 = ((__pyx_v_c_node_href == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":961
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":968
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -22523,7 +22755,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":963
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":970
  *         return 0
  *     else:
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0             # <<<<<<<<<<<<<<
@@ -22534,7 +22766,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":932
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":939
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)
  * 
  * cdef inline bint _nsTagMatchesExactly(const_xmlChar* c_node_href,             # <<<<<<<<<<<<<<
@@ -22548,7 +22780,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":965
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":972
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0
  * 
  * cdef Py_ssize_t _mapTagsToQnameMatchArray(xmlDoc* c_doc, list ns_tags,             # <<<<<<<<<<<<<<
@@ -22580,7 +22812,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_mapTagsToQnameMatchArray", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":973
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":980
  *     if it is not NULL.
  *     """
  *     cdef Py_ssize_t count = 0, i             # <<<<<<<<<<<<<<
@@ -22589,7 +22821,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
   __pyx_v_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":975
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":982
  *     cdef Py_ssize_t count = 0, i
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:             # <<<<<<<<<<<<<<
@@ -22598,15 +22830,15 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
   if (unlikely(__pyx_v_ns_tags == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = __pyx_v_ns_tags; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
   for (;;) {
     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
       PyObject* sequence = __pyx_t_3;
@@ -22618,7 +22850,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -22631,15 +22863,15 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       __Pyx_INCREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       #endif
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else {
       Py_ssize_t index = -1;
-      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
@@ -22647,7 +22879,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       __Pyx_GOTREF(__pyx_t_4);
       index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_5);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_7 = NULL;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L6_unpacking_done;
@@ -22655,17 +22887,17 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XDECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     __Pyx_XDECREF_SET(__pyx_v_tag, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":976
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":983
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:
  *         if tag is None:             # <<<<<<<<<<<<<<
@@ -22676,7 +22908,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     __pyx_t_9 = (__pyx_t_8 != 0);
     if (__pyx_t_9) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":977
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":984
  *     for ns, tag in ns_tags:
  *         if tag is None:
  *             c_tag = <const_xmlChar*>NULL             # <<<<<<<<<<<<<<
@@ -22687,7 +22919,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       goto __pyx_L7;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":978
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":985
  *         if tag is None:
  *             c_tag = <const_xmlChar*>NULL
  *         elif force_into_dict:             # <<<<<<<<<<<<<<
@@ -22697,7 +22929,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     __pyx_t_9 = (__pyx_v_force_into_dict != 0);
     if (__pyx_t_9) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":979
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":986
  *             c_tag = <const_xmlChar*>NULL
  *         elif force_into_dict:
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))             # <<<<<<<<<<<<<<
@@ -22706,12 +22938,12 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       if (unlikely(__pyx_v_tag == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_v_c_tag = xmlDictLookup(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag), __pyx_t_10);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":980
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":987
  *         elif force_into_dict:
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -22721,7 +22953,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       __pyx_t_9 = ((__pyx_v_c_tag == NULL) != 0);
       if (__pyx_t_9) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":982
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":989
  *             if c_tag is NULL:
  *                 # clean up before raising the error
  *                 for i in xrange(count):             # <<<<<<<<<<<<<<
@@ -22732,7 +22964,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
         for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
           __pyx_v_i = __pyx_t_11;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":983
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":990
  *                 # clean up before raising the error
  *                 for i in xrange(count):
  *                     cpython.ref.Py_XDECREF(c_ns_tags[i].href)             # <<<<<<<<<<<<<<
@@ -22742,20 +22974,20 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
           Py_XDECREF((__pyx_v_c_ns_tags[__pyx_v_i]).href);
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":984
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":991
  *                 for i in xrange(count):
  *                     cpython.ref.Py_XDECREF(c_ns_tags[i].href)
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))
  */
-        PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       goto __pyx_L7;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":986
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":993
  *                 raise MemoryError()
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))             # <<<<<<<<<<<<<<
@@ -22764,12 +22996,12 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       if (unlikely(__pyx_v_tag == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_v_c_tag = xmlDictExists(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag), __pyx_t_10);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":987
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":994
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -22779,7 +23011,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       __pyx_t_9 = ((__pyx_v_c_tag == NULL) != 0);
       if (__pyx_t_9) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":989
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":996
  *             if c_tag is NULL:
  *                 # not in the dict => not in the document
  *                 continue             # <<<<<<<<<<<<<<
@@ -22791,7 +23023,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":990
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":997
  *                 # not in the dict => not in the document
  *                 continue
  *         c_ns_tags[count].c_name = c_tag             # <<<<<<<<<<<<<<
@@ -22800,7 +23032,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
     (__pyx_v_c_ns_tags[__pyx_v_count]).c_name = __pyx_v_c_tag;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":991
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":998
  *                 continue
  *         c_ns_tags[count].c_name = c_tag
  *         if ns is None:             # <<<<<<<<<<<<<<
@@ -22811,7 +23043,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     __pyx_t_8 = (__pyx_t_9 != 0);
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":992
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":999
  *         c_ns_tags[count].c_name = c_tag
  *         if ns is None:
  *             c_ns_tags[count].href = NULL             # <<<<<<<<<<<<<<
@@ -22823,7 +23055,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":994
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1001
  *             c_ns_tags[count].href = NULL
  *         else:
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!             # <<<<<<<<<<<<<<
@@ -22832,7 +23064,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       Py_INCREF(__pyx_v_ns);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":995
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1002
  *         else:
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!
  *             c_ns_tags[count].href = <python.PyObject*>ns             # <<<<<<<<<<<<<<
@@ -22843,7 +23075,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     __pyx_L12:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":996
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1003
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!
  *             c_ns_tags[count].href = <python.PyObject*>ns
  *         count += 1             # <<<<<<<<<<<<<<
@@ -22855,7 +23087,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":997
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1004
  *             c_ns_tags[count].href = <python.PyObject*>ns
  *         count += 1
  *     return count             # <<<<<<<<<<<<<<
@@ -22865,7 +23097,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   __pyx_r = __pyx_v_count;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":965
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":972
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0
  * 
  * cdef Py_ssize_t _mapTagsToQnameMatchArray(xmlDoc* c_doc, list ns_tags,             # <<<<<<<<<<<<<<
@@ -22889,7 +23121,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":999
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1006
  *     return count
  * 
  * cdef int _removeNode(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -22909,7 +23141,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_removeNode", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1004
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1011
  *     """
  *     cdef xmlNode* c_next
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
@@ -22919,7 +23151,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1005
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1012
  *     cdef xmlNode* c_next
  *     c_next = c_node.next
  *     tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -22928,7 +23160,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1006
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1013
  *     c_next = c_node.next
  *     tree.xmlUnlinkNode(c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -22937,7 +23169,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1007
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1014
  *     tree.xmlUnlinkNode(c_node)
  *     _moveTail(c_next, c_node)
  *     if not attemptDeallocation(c_node):             # <<<<<<<<<<<<<<
@@ -22947,19 +23179,19 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   __pyx_t_2 = ((!(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node) != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1009
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1016
  *     if not attemptDeallocation(c_node):
  *         # make namespaces absolute
  *         moveNodeToDocument(doc, c_node.doc, c_node)             # <<<<<<<<<<<<<<
  *     return 0
  * 
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_moveNodeToDocument(__pyx_v_doc, __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_moveNodeToDocument(__pyx_v_doc, __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1010
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1017
  *         # make namespaces absolute
  *         moveNodeToDocument(doc, c_node.doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -22969,7 +23201,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":999
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1006
  *     return count
  * 
  * cdef int _removeNode(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -22986,7 +23218,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1012
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1019
  *     return 0
  * 
  * cdef int _removeSiblings(xmlNode* c_element, tree.xmlElementType node_type, bint with_tail) except -1:             # <<<<<<<<<<<<<<
@@ -23003,7 +23235,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_removeSiblings", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1015
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1022
  *     cdef xmlNode* c_node
  *     cdef xmlNode* c_next
  *     c_node = c_element.next             # <<<<<<<<<<<<<<
@@ -23013,7 +23245,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   __pyx_t_1 = __pyx_v_c_element->next;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1016
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1023
  *     cdef xmlNode* c_next
  *     c_node = c_element.next
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -23024,7 +23256,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1017
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1024
  *     c_node = c_element.next
  *     while c_node is not NULL:
  *         c_next = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -23033,7 +23265,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
     __pyx_v_c_next = __pyx_f_4lxml_5etree__nextElement(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1018
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1025
  *     while c_node is not NULL:
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -23043,7 +23275,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_t_2 = ((__pyx_v_c_node->type == __pyx_v_node_type) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1019
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1026
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -23053,7 +23285,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
       __pyx_t_2 = (__pyx_v_with_tail != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1020
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1027
  *         if c_node.type == node_type:
  *             if with_tail:
  *                 _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -23065,7 +23297,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
       }
       __pyx_L6:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1021
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1028
  *             if with_tail:
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -23074,7 +23306,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       xmlUnlinkNode(__pyx_v_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1022
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1029
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)             # <<<<<<<<<<<<<<
@@ -23086,7 +23318,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1023
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1030
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -23096,7 +23328,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1024
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1031
  *             attemptDeallocation(c_node)
  *         c_node = c_next
  *     c_node = c_element.prev             # <<<<<<<<<<<<<<
@@ -23106,7 +23338,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   __pyx_t_1 = __pyx_v_c_element->prev;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1025
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1032
  *         c_node = c_next
  *     c_node = c_element.prev
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -23117,7 +23349,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1026
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1033
  *     c_node = c_element.prev
  *     while c_node is not NULL:
  *         c_next = _previousElement(c_node)             # <<<<<<<<<<<<<<
@@ -23126,7 +23358,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
     __pyx_v_c_next = __pyx_f_4lxml_5etree__previousElement(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1027
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1034
  *     while c_node is not NULL:
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -23136,7 +23368,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_t_2 = ((__pyx_v_c_node->type == __pyx_v_node_type) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1028
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1035
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -23146,7 +23378,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
       __pyx_t_2 = (__pyx_v_with_tail != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1029
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1036
  *         if c_node.type == node_type:
  *             if with_tail:
  *                 _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -23158,7 +23390,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
       }
       __pyx_L10:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1030
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1037
  *             if with_tail:
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -23167,7 +23399,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       xmlUnlinkNode(__pyx_v_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1031
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1038
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)             # <<<<<<<<<<<<<<
@@ -23179,7 +23411,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1032
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1039
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -23189,7 +23421,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1033
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1040
  *             attemptDeallocation(c_node)
  *         c_node = c_next
  *     return 0             # <<<<<<<<<<<<<<
@@ -23199,7 +23431,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1012
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1019
  *     return 0
  * 
  * cdef int _removeSiblings(xmlNode* c_element, tree.xmlElementType node_type, bint with_tail) except -1:             # <<<<<<<<<<<<<<
@@ -23213,7 +23445,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1035
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1042
  *     return 0
  * 
  * cdef void _moveTail(xmlNode* c_tail, xmlNode* c_target):             # <<<<<<<<<<<<<<
@@ -23227,7 +23459,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_moveTail", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1039
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1046
  *     # tail support: look for any text nodes trailing this node and
  *     # move them too
  *     c_tail = _textNodeOrSkip(c_tail)             # <<<<<<<<<<<<<<
@@ -23236,7 +23468,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
  */
   __pyx_v_c_tail = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_tail);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1040
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1047
  *     # move them too
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:             # <<<<<<<<<<<<<<
@@ -23247,7 +23479,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
     __pyx_t_1 = ((__pyx_v_c_tail != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1041
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1048
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:
  *         c_next = _textNodeOrSkip(c_tail.next)             # <<<<<<<<<<<<<<
@@ -23256,7 +23488,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
  */
     __pyx_v_c_next = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_tail->next);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1042
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1049
  *     while c_tail is not NULL:
  *         c_next = _textNodeOrSkip(c_tail.next)
  *         c_target = tree.xmlAddNextSibling(c_target, c_tail)             # <<<<<<<<<<<<<<
@@ -23265,7 +23497,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
  */
     __pyx_v_c_target = xmlAddNextSibling(__pyx_v_c_target, __pyx_v_c_tail);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1043
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1050
  *         c_next = _textNodeOrSkip(c_tail.next)
  *         c_target = tree.xmlAddNextSibling(c_target, c_tail)
  *         c_tail = c_next             # <<<<<<<<<<<<<<
@@ -23275,7 +23507,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
     __pyx_v_c_tail = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1035
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1042
  *     return 0
  * 
  * cdef void _moveTail(xmlNode* c_tail, xmlNode* c_target):             # <<<<<<<<<<<<<<
@@ -23287,7 +23519,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1045
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1052
  *         c_tail = c_next
  * 
  * cdef int _copyTail(xmlNode* c_tail, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -23305,7 +23537,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_copyTail", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1049
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1056
  *     # tail copying support: look for any text nodes trailing this node and
  *     # copy it to the target node
  *     c_tail = _textNodeOrSkip(c_tail)             # <<<<<<<<<<<<<<
@@ -23314,7 +23546,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  */
   __pyx_v_c_tail = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_tail);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1050
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1057
  *     # copy it to the target node
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:             # <<<<<<<<<<<<<<
@@ -23325,7 +23557,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     __pyx_t_1 = ((__pyx_v_c_tail != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1051
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1058
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:
  *         if c_target.doc is not c_tail.doc:             # <<<<<<<<<<<<<<
@@ -23335,7 +23567,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     __pyx_t_1 = ((__pyx_v_c_target->doc != __pyx_v_c_tail->doc) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1052
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1059
  *     while c_tail is not NULL:
  *         if c_target.doc is not c_tail.doc:
  *             c_new_tail = tree.xmlDocCopyNode(c_tail, c_target.doc, 0)             # <<<<<<<<<<<<<<
@@ -23347,7 +23579,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1054
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1061
  *             c_new_tail = tree.xmlDocCopyNode(c_tail, c_target.doc, 0)
  *         else:
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)             # <<<<<<<<<<<<<<
@@ -23358,7 +23590,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1055
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1062
  *         else:
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)
  *         if c_new_tail is NULL:             # <<<<<<<<<<<<<<
@@ -23368,17 +23600,17 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     __pyx_t_1 = ((__pyx_v_c_new_tail == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1056
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1063
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)
  *         if c_new_tail is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  *         c_tail = _textNodeOrSkip(c_tail.next)
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1057
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1064
  *         if c_new_tail is NULL:
  *             raise MemoryError()
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)             # <<<<<<<<<<<<<<
@@ -23387,7 +23619,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  */
     __pyx_v_c_target = xmlAddNextSibling(__pyx_v_c_target, __pyx_v_c_new_tail);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1058
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1065
  *             raise MemoryError()
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  *         c_tail = _textNodeOrSkip(c_tail.next)             # <<<<<<<<<<<<<<
@@ -23397,7 +23629,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     __pyx_v_c_tail = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_tail->next);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1059
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1066
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  *         c_tail = _textNodeOrSkip(c_tail.next)
  *     return 0             # <<<<<<<<<<<<<<
@@ -23407,7 +23639,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1045
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1052
  *         c_tail = c_next
  * 
  * cdef int _copyTail(xmlNode* c_tail, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -23424,7 +23656,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1061
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1068
  *     return 0
  * 
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -23446,7 +23678,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_copyNonElementSiblings", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1063
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1070
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:
  *     cdef xmlNode* c_copy
  *     cdef xmlNode* c_sibling = c_node             # <<<<<<<<<<<<<<
@@ -23455,7 +23687,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
   __pyx_v_c_sibling = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1064
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1071
  *     cdef xmlNode* c_copy
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \             # <<<<<<<<<<<<<<
@@ -23466,7 +23698,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_1 = ((__pyx_v_c_sibling->prev != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1065
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1072
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or \             # <<<<<<<<<<<<<<
@@ -23476,7 +23708,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       switch (__pyx_v_c_sibling->prev->type) {
         case XML_PI_NODE:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1066
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1073
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or \
  *                  c_sibling.prev.type == tree.XML_COMMENT_NODE):             # <<<<<<<<<<<<<<
@@ -23485,7 +23717,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
         case XML_COMMENT_NODE:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1065
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1072
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or \             # <<<<<<<<<<<<<<
@@ -23504,7 +23736,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     }
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1067
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1074
  *             (c_sibling.prev.type == tree.XML_PI_NODE or \
  *                  c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev             # <<<<<<<<<<<<<<
@@ -23515,7 +23747,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_v_c_sibling = __pyx_t_4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1068
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1075
  *                  c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:             # <<<<<<<<<<<<<<
@@ -23526,7 +23758,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_3 = ((__pyx_v_c_sibling != __pyx_v_c_node) != 0);
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1069
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1076
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)             # <<<<<<<<<<<<<<
@@ -23535,7 +23767,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
     __pyx_v_c_copy = xmlDocCopyNode(__pyx_v_c_sibling, __pyx_v_c_target->doc, 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1070
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1077
  *     while c_sibling != c_node:
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -23545,17 +23777,17 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_3 = ((__pyx_v_c_copy == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1071
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1078
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  *         c_sibling = c_sibling.next
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1072
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1079
  *         if c_copy is NULL:
  *             raise MemoryError()
  *         tree.xmlAddPrevSibling(c_target, c_copy)             # <<<<<<<<<<<<<<
@@ -23564,7 +23796,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
     xmlAddPrevSibling(__pyx_v_c_target, __pyx_v_c_copy);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1073
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1080
  *             raise MemoryError()
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -23575,7 +23807,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_v_c_sibling = __pyx_t_4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1074
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1081
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \             # <<<<<<<<<<<<<<
@@ -23586,7 +23818,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_3 = ((__pyx_v_c_sibling->next != NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1075
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1082
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or \             # <<<<<<<<<<<<<<
@@ -23596,7 +23828,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       switch (__pyx_v_c_sibling->next->type) {
         case XML_PI_NODE:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1076
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1083
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or \
  *                  c_sibling.next.type == tree.XML_COMMENT_NODE):             # <<<<<<<<<<<<<<
@@ -23605,7 +23837,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
         case XML_COMMENT_NODE:
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1075
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1082
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or \             # <<<<<<<<<<<<<<
@@ -23624,7 +23856,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1077
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1084
  *             (c_sibling.next.type == tree.XML_PI_NODE or \
  *                  c_sibling.next.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -23634,7 +23866,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_4 = __pyx_v_c_sibling->next;
     __pyx_v_c_sibling = __pyx_t_4;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1078
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1085
  *                  c_sibling.next.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)             # <<<<<<<<<<<<<<
@@ -23643,7 +23875,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
     __pyx_v_c_copy = xmlDocCopyNode(__pyx_v_c_sibling, __pyx_v_c_target->doc, 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1079
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1086
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -23653,17 +23885,17 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_2 = ((__pyx_v_c_copy == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1080
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1087
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         tree.xmlAddNextSibling(c_target, c_copy)
  * 
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1081
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1088
  *         if c_copy is NULL:
  *             raise MemoryError()
  *         tree.xmlAddNextSibling(c_target, c_copy)             # <<<<<<<<<<<<<<
@@ -23673,7 +23905,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     xmlAddNextSibling(__pyx_v_c_target, __pyx_v_c_copy);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1061
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1068
  *     return 0
  * 
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -23692,7 +23924,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1083
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1090
  *         tree.xmlAddNextSibling(c_target, c_copy)
  * 
  * cdef int _deleteSlice(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -23718,7 +23950,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_deleteSlice", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1091
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1098
  *     cdef Py_ssize_t c, i
  *     cdef _node_to_node_function next_element
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -23728,7 +23960,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1092
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1099
  *     cdef _node_to_node_function next_element
  *     if c_node is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -23739,7 +23971,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1093
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1100
  *     if c_node is NULL:
  *         return 0
  *     if step > 0:             # <<<<<<<<<<<<<<
@@ -23749,7 +23981,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   __pyx_t_1 = ((__pyx_v_step > 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1094
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1101
  *         return 0
  *     if step > 0:
  *         next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -23761,7 +23993,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1096
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1103
  *         next_element = _nextElement
  *     else:
  *         step = -step             # <<<<<<<<<<<<<<
@@ -23770,7 +24002,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
     __pyx_v_step = (-__pyx_v_step);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1097
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1104
  *     else:
  *         step = -step
  *         next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -23781,7 +24013,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1099
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1106
  *         next_element = _previousElement
  *     # now start deleting nodes
  *     c = 0             # <<<<<<<<<<<<<<
@@ -23790,7 +24022,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
   __pyx_v_c = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1100
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1107
  *     # now start deleting nodes
  *     c = 0
  *     c_next = c_node             # <<<<<<<<<<<<<<
@@ -23799,7 +24031,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
   __pyx_v_c_next = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1101
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1108
  *     c = 0
  *     c_next = c_node
  *     while c_node is not NULL and c < count:             # <<<<<<<<<<<<<<
@@ -23816,7 +24048,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     }
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1102
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1109
  *     c_next = c_node
  *     while c_node is not NULL and c < count:
  *         for i in range(step):             # <<<<<<<<<<<<<<
@@ -23827,7 +24059,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
       __pyx_v_i = __pyx_t_5;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1103
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1110
  *     while c_node is not NULL and c < count:
  *         for i in range(step):
  *             c_next = next_element(c_next)             # <<<<<<<<<<<<<<
@@ -23837,16 +24069,16 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
       __pyx_v_c_next = __pyx_v_next_element(__pyx_v_c_next);
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1104
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1111
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *         _removeNode(doc, c_node)             # <<<<<<<<<<<<<<
  *         c += 1
  *         c_node = c_next
  */
-    __pyx_t_6 = __pyx_f_4lxml_5etree__removeNode(__pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__removeNode(__pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1105
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1112
  *             c_next = next_element(c_next)
  *         _removeNode(doc, c_node)
  *         c += 1             # <<<<<<<<<<<<<<
@@ -23855,7 +24087,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
     __pyx_v_c = (__pyx_v_c + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1106
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1113
  *         _removeNode(doc, c_node)
  *         c += 1
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -23865,7 +24097,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1107
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1114
  *         c += 1
  *         c_node = c_next
  *     return 0             # <<<<<<<<<<<<<<
@@ -23875,7 +24107,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1083
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1090
  *         tree.xmlAddNextSibling(c_target, c_copy)
  * 
  * cdef int _deleteSlice(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -23892,7 +24124,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1109
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1116
  *     return 0
  * 
  * cdef int _replaceSlice(_Element parent, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -23930,7 +24162,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __Pyx_RefNannySetupContext("_replaceSlice", 0);
   __Pyx_INCREF(__pyx_v_elements);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1124
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1131
  *     cdef Py_ssize_t seqlength, i, c
  *     cdef _node_to_node_function next_element
  *     assert step > 0             # <<<<<<<<<<<<<<
@@ -23941,12 +24173,12 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   if (unlikely(!Py_OptimizeFlag)) {
     if (unlikely(!((__pyx_v_step > 0) != 0))) {
       PyErr_SetNone(PyExc_AssertionError);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1125
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1132
  *     cdef _node_to_node_function next_element
  *     assert step > 0
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -23956,7 +24188,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = (__pyx_v_left_to_right != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1126
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1133
  *     assert step > 0
  *     if left_to_right:
  *         next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -23968,7 +24200,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1128
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1135
  *         next_element = _nextElement
  *     else:
  *         next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -23979,7 +24211,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1130
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1137
  *         next_element = _previousElement
  * 
  *     if not isinstance(elements, (list, tuple)):             # <<<<<<<<<<<<<<
@@ -23996,19 +24228,19 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1131
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1138
  * 
  *     if not isinstance(elements, (list, tuple)):
  *         elements = list(elements)             # <<<<<<<<<<<<<<
  * 
  *     if step > 1:
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_elements);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_elements);
     __Pyx_GIVEREF(__pyx_v_elements);
-    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_5);
@@ -24017,7 +24249,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1133
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1140
  *         elements = list(elements)
  * 
  *     if step > 1:             # <<<<<<<<<<<<<<
@@ -24027,17 +24259,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = ((__pyx_v_step > 1) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1135
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1142
  *     if step > 1:
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)             # <<<<<<<<<<<<<<
  *         if seqlength != slicelength:
  *             raise ValueError, u"attempt to assign sequence of size %d " \
  */
-    __pyx_t_6 = PyObject_Length(__pyx_v_elements); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_Length(__pyx_v_elements); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_seqlength = __pyx_t_6;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1136
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1143
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)
  *         if seqlength != slicelength:             # <<<<<<<<<<<<<<
@@ -24047,18 +24279,18 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_t_1 = ((__pyx_v_seqlength != __pyx_v_slicelength) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1138
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1145
  *         if seqlength != slicelength:
  *             raise ValueError, u"attempt to assign sequence of size %d " \
  *                 u"to extended slice of size %d" % (seqlength, slicelength)             # <<<<<<<<<<<<<<
  * 
  *     if c_node is NULL:
  */
-      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_seqlength); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_seqlength); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_slicelength); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_slicelength); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -24066,18 +24298,18 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_5 = 0;
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_attempt_to_assign_sequence_of_si, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_attempt_to_assign_sequence_of_si, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0, 0);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1140
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1147
  *                 u"to extended slice of size %d" % (seqlength, slicelength)
  * 
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -24087,7 +24319,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1142
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1149
  *     if c_node is NULL:
  *         # no children yet => add all elements straight away
  *         if left_to_right:             # <<<<<<<<<<<<<<
@@ -24097,7 +24329,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_t_1 = (__pyx_v_left_to_right != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1143
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1150
  *         # no children yet => add all elements straight away
  *         if left_to_right:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -24108,7 +24340,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
         __pyx_t_8 = NULL;
       } else {
-        __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
       }
@@ -24116,16 +24348,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else {
           __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24133,17 +24365,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
             PyObject* exc_type = PyErr_Occurred();
             if (exc_type) {
               if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-              else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+              else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             }
             break;
           }
           __Pyx_GOTREF(__pyx_t_7);
         }
-        if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
         __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1144
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1151
  *         if left_to_right:
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24155,26 +24387,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
           if (unlikely(!(__pyx_t_1 != 0))) {
             PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
         }
         #endif
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1145
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1152
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"
  *                 _appendChild(parent, element)             # <<<<<<<<<<<<<<
  *         else:
  *             for element in elements:
  */
-        __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L8;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1147
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1154
  *                 _appendChild(parent, element)
  *         else:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -24185,7 +24417,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
         __pyx_t_8 = NULL;
       } else {
-        __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
       }
@@ -24193,16 +24425,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
           if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
           if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else {
           __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24210,17 +24442,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
             PyObject* exc_type = PyErr_Occurred();
             if (exc_type) {
               if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-              else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+              else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             }
             break;
           }
           __Pyx_GOTREF(__pyx_t_7);
         }
-        if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
         __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1148
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1155
  *         else:
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24232,25 +24464,25 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
           if (unlikely(!(__pyx_t_1 != 0))) {
             PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
         }
         #endif
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1149
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1156
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"
  *                 _prependChild(parent, element)             # <<<<<<<<<<<<<<
  *         return 0
  * 
  */
-        __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1150
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1157
  *                 assert element is not None, u"Node must not be None"
  *                 _prependChild(parent, element)
  *         return 0             # <<<<<<<<<<<<<<
@@ -24261,7 +24493,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1153
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1160
  * 
  *     # remove the elements first as some might be re-added
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -24271,7 +24503,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = (__pyx_v_left_to_right != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1155
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1162
  *     if left_to_right:
  *         # L->R, remember left neighbour
  *         c_orig_neighbour = _previousElement(c_node)             # <<<<<<<<<<<<<<
@@ -24283,7 +24515,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1158
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1165
  *     else:
  *         # R->L, remember right neighbour
  *         c_orig_neighbour = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -24294,7 +24526,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L13:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1164
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1171
  *     # safe to let _removeNode() try (and fail) to free them even if
  *     # the element itself or one of its descendents will be reinserted.
  *     c = 0             # <<<<<<<<<<<<<<
@@ -24303,7 +24535,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1172
  *     # the element itself or one of its descendents will be reinserted.
  *     c = 0
  *     c_next = c_node             # <<<<<<<<<<<<<<
@@ -24312,7 +24544,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c_next = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1166
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1173
  *     c = 0
  *     c_next = c_node
  *     while c_node is not NULL and c < slicelength:             # <<<<<<<<<<<<<<
@@ -24329,7 +24561,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1167
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1174
  *     c_next = c_node
  *     while c_node is not NULL and c < slicelength:
  *         for i in range(step):             # <<<<<<<<<<<<<<
@@ -24340,7 +24572,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_6; __pyx_t_10+=1) {
       __pyx_v_i = __pyx_t_10;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1168
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1175
  *     while c_node is not NULL and c < slicelength:
  *         for i in range(step):
  *             c_next = next_element(c_next)             # <<<<<<<<<<<<<<
@@ -24350,7 +24582,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_v_c_next = __pyx_v_next_element(__pyx_v_c_next);
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1169
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1176
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *         _removeNode(parent._doc, c_node)             # <<<<<<<<<<<<<<
@@ -24359,10 +24591,10 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_9 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1170
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1177
  *             c_next = next_element(c_next)
  *         _removeNode(parent._doc, c_node)
  *         c += 1             # <<<<<<<<<<<<<<
@@ -24371,7 +24603,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_v_c = (__pyx_v_c + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1171
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1178
  *         _removeNode(parent._doc, c_node)
  *         c += 1
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -24381,19 +24613,19 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1174
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1181
  * 
  *     # make sure each element is inserted only once
  *     elements = iter(elements)             # <<<<<<<<<<<<<<
  * 
  *     # find the first node right of the new insertion point
  */
-  __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1177
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1184
  * 
  *     # find the first node right of the new insertion point
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -24403,7 +24635,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = (__pyx_v_left_to_right != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1178
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1185
  *     # find the first node right of the new insertion point
  *     if left_to_right:
  *         if c_orig_neighbour is not NULL:             # <<<<<<<<<<<<<<
@@ -24413,7 +24645,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_t_2 = ((__pyx_v_c_orig_neighbour != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1179
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1186
  *     if left_to_right:
  *         if c_orig_neighbour is not NULL:
  *             c_node = next_element(c_orig_neighbour)             # <<<<<<<<<<<<<<
@@ -24425,7 +24657,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1182
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1189
  *         else:
  *             # before the first element
  *             c_node = _findChildForwards(parent._c_node, 0)             # <<<<<<<<<<<<<<
@@ -24438,7 +24670,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L18;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1183
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1190
  *             # before the first element
  *             c_node = _findChildForwards(parent._c_node, 0)
  *     elif c_orig_neighbour is NULL:             # <<<<<<<<<<<<<<
@@ -24448,7 +24680,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = ((__pyx_v_c_orig_neighbour == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1186
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1193
  *         # at the end, but reversed stepping
  *         # append one element and go to the next insertion point
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -24459,7 +24691,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
@@ -24467,16 +24699,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24484,17 +24716,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1187
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1194
  *         # append one element and go to the next insertion point
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24506,21 +24738,21 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
         if (unlikely(!(__pyx_t_2 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       #endif
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1188
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1195
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  *             _appendChild(parent, element)             # <<<<<<<<<<<<<<
  *             c_node = element._c_node
  *             if slicelength > 0:
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1189
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1196
  *             assert element is not None, u"Node must not be None"
  *             _appendChild(parent, element)
  *             c_node = element._c_node             # <<<<<<<<<<<<<<
@@ -24530,7 +24762,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_11 = __pyx_v_element->_c_node;
       __pyx_v_c_node = __pyx_t_11;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1190
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1197
  *             _appendChild(parent, element)
  *             c_node = element._c_node
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -24540,7 +24772,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_2 = ((__pyx_v_slicelength > 0) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1191
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1198
  *             c_node = element._c_node
  *             if slicelength > 0:
  *                 slicelength -= 1             # <<<<<<<<<<<<<<
@@ -24549,7 +24781,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         __pyx_v_slicelength = (__pyx_v_slicelength - 1);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1192
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1199
  *             if slicelength > 0:
  *                 slicelength -= 1
  *                 for i in range(1, step):             # <<<<<<<<<<<<<<
@@ -24560,7 +24792,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         for (__pyx_t_12 = 1; __pyx_t_12 < __pyx_t_10; __pyx_t_12+=1) {
           __pyx_v_i = __pyx_t_12;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1193
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1200
  *                 slicelength -= 1
  *                 for i in range(1, step):
  *                     c_node = next_element(c_node)             # <<<<<<<<<<<<<<
@@ -24573,7 +24805,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       }
       __pyx_L22:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1194
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1201
  *                 for i in range(1, step):
  *                     c_node = next_element(c_node)
  *             break             # <<<<<<<<<<<<<<
@@ -24588,7 +24820,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L18:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1196
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1203
  *             break
  * 
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -24598,7 +24830,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = (__pyx_v_left_to_right != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1199
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1206
  *         # adjust step size after removing slice as we are not stepping
  *         # over the newly inserted elements
  *         step -= 1             # <<<<<<<<<<<<<<
@@ -24610,7 +24842,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L25:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1202
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1209
  * 
  *     # now insert elements where we removed them
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -24620,7 +24852,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1203
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1210
  *     # now insert elements where we removed them
  *     if c_node is not NULL:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -24631,7 +24863,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
@@ -24639,16 +24871,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24656,17 +24888,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1204
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1211
  *     if c_node is not NULL:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24678,21 +24910,21 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
         if (unlikely(!(__pyx_t_2 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       #endif
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1205
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1212
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  *             _assertValidNode(element)             # <<<<<<<<<<<<<<
  *             # move element and tail over
  *             c_source_doc = element._c_node.doc
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1207
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1214
  *             _assertValidNode(element)
  *             # move element and tail over
  *             c_source_doc = element._c_node.doc             # <<<<<<<<<<<<<<
@@ -24702,7 +24934,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_13 = __pyx_v_element->_c_node->doc;
       __pyx_v_c_source_doc = __pyx_t_13;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1208
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1215
  *             # move element and tail over
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next             # <<<<<<<<<<<<<<
@@ -24712,7 +24944,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_11 = __pyx_v_element->_c_node->next;
       __pyx_v_c_next = __pyx_t_11;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1209
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1216
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next
  *             tree.xmlAddPrevSibling(c_node, element._c_node)             # <<<<<<<<<<<<<<
@@ -24721,7 +24953,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       xmlAddPrevSibling(__pyx_v_c_node, __pyx_v_element->_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1210
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1217
  *             c_next = element._c_node.next
  *             tree.xmlAddPrevSibling(c_node, element._c_node)
  *             _moveTail(c_next, element._c_node)             # <<<<<<<<<<<<<<
@@ -24730,7 +24962,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_element->_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1213
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1220
  * 
  *             # integrate element into new document
  *             moveNodeToDocument(parent._doc, c_source_doc, element._c_node)             # <<<<<<<<<<<<<<
@@ -24739,10 +24971,10 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       __pyx_t_7 = ((PyObject *)__pyx_v_parent->_doc);
       __Pyx_INCREF(__pyx_t_7);
-      __pyx_t_9 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1216
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1223
  * 
  *             # stop at the end of the slice
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -24752,7 +24984,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_2 = ((__pyx_v_slicelength > 0) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1217
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1224
  *             # stop at the end of the slice
  *             if slicelength > 0:
  *                 slicelength = slicelength - 1             # <<<<<<<<<<<<<<
@@ -24761,7 +24993,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         __pyx_v_slicelength = (__pyx_v_slicelength - 1);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1218
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1225
  *             if slicelength > 0:
  *                 slicelength = slicelength - 1
  *                 for i in range(step):             # <<<<<<<<<<<<<<
@@ -24772,7 +25004,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_10; __pyx_t_12+=1) {
           __pyx_v_i = __pyx_t_12;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1219
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1226
  *                 slicelength = slicelength - 1
  *                 for i in range(step):
  *                     c_node = next_element(c_node)             # <<<<<<<<<<<<<<
@@ -24782,7 +25014,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           __pyx_v_c_node = __pyx_v_next_element(__pyx_v_c_node);
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1220
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1227
  *                 for i in range(step):
  *                     c_node = next_element(c_node)
  *                 if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -24792,7 +25024,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
         if (__pyx_t_2) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1221
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1228
  *                     c_node = next_element(c_node)
  *                 if c_node is NULL:
  *                     break             # <<<<<<<<<<<<<<
@@ -24807,7 +25039,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1224
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1231
  *         else:
  *             # everything inserted
  *             return 0             # <<<<<<<<<<<<<<
@@ -24824,7 +25056,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L26:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1227
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1234
  * 
  *     # append the remaining elements at the respective end
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -24834,7 +25066,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = (__pyx_v_left_to_right != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1228
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1235
  *     # append the remaining elements at the respective end
  *     if left_to_right:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -24845,7 +25077,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
@@ -24853,16 +25085,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24870,17 +25102,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1229
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1236
  *     if left_to_right:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24892,35 +25124,35 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
         if (unlikely(!(__pyx_t_2 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       #endif
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1230
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1237
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  *             _assertValidNode(element)             # <<<<<<<<<<<<<<
  *             _appendChild(parent, element)
  *     else:
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1231
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1238
  *             assert element is not None, u"Node must not be None"
  *             _assertValidNode(element)
  *             _appendChild(parent, element)             # <<<<<<<<<<<<<<
  *     else:
  *         for element in elements:
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L34;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1233
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1240
  *             _appendChild(parent, element)
  *     else:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -24931,7 +25163,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_4 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
@@ -24939,16 +25171,16 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_7 = __pyx_t_8(__pyx_t_4);
@@ -24956,17 +25188,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1234
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1241
  *     else:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -24978,34 +25210,34 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
         if (unlikely(!(__pyx_t_2 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Node_must_not_be_None);
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       #endif
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1235
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1242
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  *             _assertValidNode(element)             # <<<<<<<<<<<<<<
  *             _prependChild(parent, element)
  * 
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1236
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1243
  *             assert element is not None, u"Node must not be None"
  *             _assertValidNode(element)
  *             _prependChild(parent, element)             # <<<<<<<<<<<<<<
  * 
  *     return 0
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   }
   __pyx_L34:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1238
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1245
  *             _prependChild(parent, element)
  * 
  *     return 0             # <<<<<<<<<<<<<<
@@ -25015,7 +25247,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1109
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1116
  *     return 0
  * 
  * cdef int _replaceSlice(_Element parent, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -25037,7 +25269,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1240
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1247
  *     return 0
  * 
  * cdef int _appendChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -25048,7 +25280,6 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
 static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent, struct LxmlElement *__pyx_v_child) {
   xmlNode *__pyx_v_c_node;
   xmlDoc *__pyx_v_c_source_doc;
-  xmlNode *__pyx_v_c_parent;
   xmlNode *__pyx_v_c_next;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
@@ -25062,7 +25293,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_appendChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1243
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1250
  *     u"""Append a new child to a parent element.
  *     """
  *     c_node = child._c_node             # <<<<<<<<<<<<<<
@@ -25072,74 +25303,42 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_t_1 = __pyx_v_child->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1244
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1251
  *     """
  *     c_node = child._c_node
  *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
  *     # prevent cycles
- *     c_parent = parent._c_node
+ *     if _isAncestorOrSame(c_node, parent._c_node):
  */
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1246
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1253
  *     c_source_doc = c_node.doc
  *     # prevent cycles
- *     c_parent = parent._c_node             # <<<<<<<<<<<<<<
- *     while c_parent:
- *         if c_parent is c_node:
- */
-  __pyx_t_1 = __pyx_v_parent->_c_node;
-  __pyx_v_c_parent = __pyx_t_1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1247
- *     # prevent cycles
- *     c_parent = parent._c_node
- *     while c_parent:             # <<<<<<<<<<<<<<
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")
- */
-  while (1) {
-    __pyx_t_3 = (__pyx_v_c_parent != 0);
-    if (!__pyx_t_3) break;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1248
- *     c_parent = parent._c_node
- *     while c_parent:
- *         if c_parent is c_node:             # <<<<<<<<<<<<<<
- *             raise ValueError("cannot append parent to itself")
- *         c_parent = c_parent.parent
- */
-    __pyx_t_3 = ((__pyx_v_c_parent == __pyx_v_c_node) != 0);
-    if (__pyx_t_3) {
-
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1249
- *     while c_parent:
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
- *         c_parent = c_parent.parent
+ *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
+ *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  */
-      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    }
+  __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
+  if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1250
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")
- *         c_parent = c_parent.parent             # <<<<<<<<<<<<<<
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1254
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, parent._c_node):
+ *         raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
  *     # store possible text node
  *     c_next = c_node.next
  */
-    __pyx_t_1 = __pyx_v_c_parent->parent;
-    __pyx_v_c_parent = __pyx_t_1;
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1252
- *         c_parent = c_parent.parent
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1256
+ *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -25148,7 +25347,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1258
  *     c_next = c_node.next
  *     # move node itself
  *     tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -25157,7 +25356,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1255
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1259
  *     # move node itself
  *     tree.xmlUnlinkNode(c_node)
  *     tree.xmlAddChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -25166,7 +25365,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   xmlAddChild(__pyx_v_parent->_c_node, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1256
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1260
  *     tree.xmlUnlinkNode(c_node)
  *     tree.xmlAddChild(parent._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -25175,7 +25374,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1259
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1263
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
@@ -25184,10 +25383,10 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1260
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1264
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -25197,7 +25396,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1247
  *     return 0
  * 
  * cdef int _appendChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -25215,7 +25414,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1262
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
  *     return 0
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -25226,7 +25425,6 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
 static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent, struct LxmlElement *__pyx_v_child) {
   xmlNode *__pyx_v_c_node;
   xmlDoc *__pyx_v_c_source_doc;
-  xmlNode *__pyx_v_c_parent;
   xmlNode *__pyx_v_c_next;
   xmlNode *__pyx_v_c_child;
   int __pyx_r;
@@ -25241,7 +25439,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_prependChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1269
  *     u"""Prepend a new child to a parent element.
  *     """
  *     c_node = child._c_node             # <<<<<<<<<<<<<<
@@ -25251,74 +25449,42 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = __pyx_v_child->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1270
  *     """
  *     c_node = child._c_node
  *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
  *     # prevent cycles
- *     c_parent = parent._c_node
+ *     if _isAncestorOrSame(c_node, parent._c_node):
  */
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1268
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1272
  *     c_source_doc = c_node.doc
  *     # prevent cycles
- *     c_parent = parent._c_node             # <<<<<<<<<<<<<<
- *     while c_parent:
- *         if c_parent is c_node:
- */
-  __pyx_t_1 = __pyx_v_parent->_c_node;
-  __pyx_v_c_parent = __pyx_t_1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1269
- *     # prevent cycles
- *     c_parent = parent._c_node
- *     while c_parent:             # <<<<<<<<<<<<<<
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")
- */
-  while (1) {
-    __pyx_t_3 = (__pyx_v_c_parent != 0);
-    if (!__pyx_t_3) break;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1270
- *     c_parent = parent._c_node
- *     while c_parent:
- *         if c_parent is c_node:             # <<<<<<<<<<<<<<
- *             raise ValueError("cannot append parent to itself")
- *         c_parent = c_parent.parent
- */
-    __pyx_t_3 = ((__pyx_v_c_parent == __pyx_v_c_node) != 0);
-    if (__pyx_t_3) {
-
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1271
- *     while c_parent:
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
- *         c_parent = c_parent.parent
+ *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
+ *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  */
-      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    }
+  __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
+  if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1272
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")
- *         c_parent = c_parent.parent             # <<<<<<<<<<<<<<
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1273
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, parent._c_node):
+ *         raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
  *     # store possible text node
  *     c_next = c_node.next
  */
-    __pyx_t_1 = __pyx_v_c_parent->parent;
-    __pyx_v_c_parent = __pyx_t_1;
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1274
- *         c_parent = c_parent.parent
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1275
+ *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -25327,7 +25493,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1276
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1277
  *     c_next = c_node.next
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)             # <<<<<<<<<<<<<<
@@ -25336,7 +25502,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c_child = __pyx_f_4lxml_5etree__findChildForwards(__pyx_v_parent->_c_node, 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1278
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:             # <<<<<<<<<<<<<<
@@ -25346,7 +25512,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_3 = ((__pyx_v_c_child == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1278
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1279
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -25355,7 +25521,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1279
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1280
  *     if c_child is NULL:
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlAddChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -25363,11 +25529,11 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  *         tree.xmlAddPrevSibling(c_child, c_node)
  */
     xmlAddChild(__pyx_v_parent->_c_node, __pyx_v_c_node);
-    goto __pyx_L6;
+    goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1281
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1282
  *         tree.xmlAddChild(parent._c_node, c_node)
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)             # <<<<<<<<<<<<<<
@@ -25376,9 +25542,9 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
     xmlAddPrevSibling(__pyx_v_c_child, __pyx_v_c_node);
   }
-  __pyx_L6:;
+  __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1282
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1283
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -25387,7 +25553,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1285
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1286
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
@@ -25396,10 +25562,10 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1287
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -25409,7 +25575,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1262
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
  *     return 0
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -25427,7 +25593,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1288
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1289
  *     return 0
  * 
  * cdef int _appendSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -25436,113 +25602,26 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
 
 static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_element, struct LxmlElement *__pyx_v_sibling) {
-  xmlNode *__pyx_v_c_node;
-  xmlDoc *__pyx_v_c_source_doc;
-  xmlNode *__pyx_v_c_next;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
-  xmlNode *__pyx_t_1;
-  int __pyx_t_2;
-  xmlDoc *__pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
+  int __pyx_t_1;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_appendSibling", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1291
- *     u"""Add a new sibling behind an element.
- *     """
- *     c_node = sibling._c_node             # <<<<<<<<<<<<<<
- *     if element._c_node is c_node:
- *         return 0  # nothing to do
- */
-  __pyx_t_1 = __pyx_v_sibling->_c_node;
-  __pyx_v_c_node = __pyx_t_1;
-
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1292
+ *     u"""Add a new sibling behind an element.
  *     """
- *     c_node = sibling._c_node
- *     if element._c_node is c_node:             # <<<<<<<<<<<<<<
- *         return 0  # nothing to do
- *     c_source_doc = c_node.doc
- */
-  __pyx_t_2 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
-  if (__pyx_t_2) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1293
- *     c_node = sibling._c_node
- *     if element._c_node is c_node:
- *         return 0  # nothing to do             # <<<<<<<<<<<<<<
- *     c_source_doc = c_node.doc
- *     # store possible text node
- */
-    __pyx_r = 0;
-    goto __pyx_L0;
-  }
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1294
- *     if element._c_node is c_node:
- *         return 0  # nothing to do
- *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
- *     # store possible text node
- *     c_next = c_node.next
- */
-  __pyx_t_3 = __pyx_v_c_node->doc;
-  __pyx_v_c_source_doc = __pyx_t_3;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1296
- *     c_source_doc = c_node.doc
- *     # store possible text node
- *     c_next = c_node.next             # <<<<<<<<<<<<<<
- *     # move node itself
- *     tree.xmlAddNextSibling(element._c_node, c_node)
- */
-  __pyx_t_1 = __pyx_v_c_node->next;
-  __pyx_v_c_next = __pyx_t_1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1298
- *     c_next = c_node.next
- *     # move node itself
- *     tree.xmlAddNextSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
- *     _moveTail(c_next, c_node)
- *     # uh oh, elements may be pointing to different doc when
- */
-  xmlAddNextSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1299
- *     # move node itself
- *     tree.xmlAddNextSibling(element._c_node, c_node)
- *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
- *     # uh oh, elements may be pointing to different doc when
- *     # parent element has moved; change them too..
- */
-  __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1302
- *     # uh oh, elements may be pointing to different doc when
- *     # parent element has moved; change them too..
- *     moveNodeToDocument(element._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
- *     return 0
- * 
- */
-  __pyx_t_4 = ((PyObject *)__pyx_v_element->_doc);
-  __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1303
- *     # parent element has moved; change them too..
- *     moveNodeToDocument(element._doc, c_source_doc, c_node)
- *     return 0             # <<<<<<<<<<<<<<
+ *     return _addSibling(element, sibling, as_next=True)             # <<<<<<<<<<<<<<
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:
  */
-  __pyx_r = 0;
+  __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 1); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1288
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1289
  *     return 0
  * 
  * cdef int _appendSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -25552,7 +25631,6 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
 
   /* function exit code */
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._appendSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -25560,8 +25638,8 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
- *     return 0
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1294
+ *     return _addSibling(element, sibling, as_next=True)
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
  *     u"""Add a new sibling before an element.
@@ -25569,91 +25647,184 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
  */
 
 static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_element, struct LxmlElement *__pyx_v_sibling) {
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_prependSibling", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1297
+ *     u"""Add a new sibling before an element.
+ *     """
+ *     return _addSibling(element, sibling, as_next=False)             # <<<<<<<<<<<<<<
+ * 
+ * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
+ */
+  __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 0); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_t_1;
+  goto __pyx_L0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1294
+ *     return _addSibling(element, sibling, as_next=True)
+ * 
+ * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
+ *     u"""Add a new sibling before an element.
+ *     """
+ */
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_AddTraceback("lxml.etree._prependSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = -1;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1299
+ *     return _addSibling(element, sibling, as_next=False)
+ * 
+ * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:             # <<<<<<<<<<<<<<
+ *     c_node = sibling._c_node
+ *     c_source_doc = c_node.doc
+ */
+
+static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element, struct LxmlElement *__pyx_v_sibling, int __pyx_v_as_next) {
   xmlNode *__pyx_v_c_node;
   xmlDoc *__pyx_v_c_source_doc;
   xmlNode *__pyx_v_c_next;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
-  int __pyx_t_2;
-  xmlDoc *__pyx_t_3;
+  xmlDoc *__pyx_t_2;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_prependSibling", 0);
+  __Pyx_RefNannySetupContext("_addSibling", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1308
- *     u"""Add a new sibling before an element.
- *     """
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1300
+ * 
+ * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
  *     c_node = sibling._c_node             # <<<<<<<<<<<<<<
- *     if element._c_node is c_node:
- *         return 0  # nothing to do
+ *     c_source_doc = c_node.doc
+ *     # prevent cycles
  */
   __pyx_t_1 = __pyx_v_sibling->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1309
- *     """
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1301
+ * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
  *     c_node = sibling._c_node
- *     if element._c_node is c_node:             # <<<<<<<<<<<<<<
- *         return 0  # nothing to do
- *     c_source_doc = c_node.doc
+ *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, element._c_node):
  */
-  __pyx_t_2 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
-  if (__pyx_t_2) {
+  __pyx_t_2 = __pyx_v_c_node->doc;
+  __pyx_v_c_source_doc = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1310
- *     c_node = sibling._c_node
- *     if element._c_node is c_node:
- *         return 0  # nothing to do             # <<<<<<<<<<<<<<
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1303
  *     c_source_doc = c_node.doc
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, element._c_node):             # <<<<<<<<<<<<<<
+ *         if element._c_node is c_node:
+ *             return 0  # nothing to do
+ */
+  __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_element->_c_node) != 0);
+  if (__pyx_t_3) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1304
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, element._c_node):
+ *         if element._c_node is c_node:             # <<<<<<<<<<<<<<
+ *             return 0  # nothing to do
+ *         raise ValueError("cannot add ancestor as sibling, please break cycle first")
+ */
+    __pyx_t_3 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
+    if (__pyx_t_3) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
+ *     if _isAncestorOrSame(c_node, element._c_node):
+ *         if element._c_node is c_node:
+ *             return 0  # nothing to do             # <<<<<<<<<<<<<<
+ *         raise ValueError("cannot add ancestor as sibling, please break cycle first")
  *     # store possible text node
  */
-    __pyx_r = 0;
-    goto __pyx_L0;
-  }
+      __pyx_r = 0;
+      goto __pyx_L0;
+    }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1311
- *     if element._c_node is c_node:
- *         return 0  # nothing to do
- *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1306
+ *         if element._c_node is c_node:
+ *             return 0  # nothing to do
+ *         raise ValueError("cannot add ancestor as sibling, please break cycle first")             # <<<<<<<<<<<<<<
  *     # store possible text node
  *     c_next = c_node.next
  */
-  __pyx_t_3 = __pyx_v_c_node->doc;
-  __pyx_v_c_source_doc = __pyx_t_3;
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1313
- *     c_source_doc = c_node.doc
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1308
+ *         raise ValueError("cannot add ancestor as sibling, please break cycle first")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
- *     tree.xmlAddPrevSibling(element._c_node, c_node)
+ *     if as_next:
  */
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1315
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1310
  *     c_next = c_node.next
  *     # move node itself
- *     tree.xmlAddPrevSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
+ *     if as_next:             # <<<<<<<<<<<<<<
+ *         tree.xmlAddNextSibling(element._c_node, c_node)
+ *     else:
+ */
+  __pyx_t_3 = (__pyx_v_as_next != 0);
+  if (__pyx_t_3) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1311
+ *     # move node itself
+ *     if as_next:
+ *         tree.xmlAddNextSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
+ *     else:
+ *         tree.xmlAddPrevSibling(element._c_node, c_node)
+ */
+    xmlAddNextSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
+    goto __pyx_L5;
+  }
+  /*else*/ {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1313
+ *         tree.xmlAddNextSibling(element._c_node, c_node)
+ *     else:
+ *         tree.xmlAddPrevSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
  *     _moveTail(c_next, c_node)
  *     # uh oh, elements may be pointing to different doc when
  */
-  xmlAddPrevSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
+    xmlAddPrevSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
+  }
+  __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1316
- *     # move node itself
- *     tree.xmlAddPrevSibling(element._c_node, c_node)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1314
+ *     else:
+ *         tree.xmlAddPrevSibling(element._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1319
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1317
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
@@ -25662,10 +25833,10 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_element->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1320
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1318
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -25675,25 +25846,25 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
- *     return 0
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1299
+ *     return _addSibling(element, sibling, as_next=False)
  * 
- * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
- *     u"""Add a new sibling before an element.
- *     """
+ * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:             # <<<<<<<<<<<<<<
+ *     c_node = sibling._c_node
+ *     c_source_doc = c_node.doc
  */
 
   /* function exit code */
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_AddTraceback("lxml.etree._prependSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_AddTraceback("lxml.etree._addSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1322
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1320
  *     return 0
  * 
  * cdef inline int isutf8(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -25708,7 +25879,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("isutf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1323
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1321
  * 
  * cdef inline int isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]             # <<<<<<<<<<<<<<
@@ -25717,7 +25888,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_c = (__pyx_v_s[0]);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1324
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1322
  * cdef inline int isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':             # <<<<<<<<<<<<<<
@@ -25728,7 +25899,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = ((__pyx_v_c != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1325
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1323
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':
  *         if c & 0x80:             # <<<<<<<<<<<<<<
@@ -25738,7 +25909,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = ((__pyx_v_c & 0x80) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1326
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1324
  *     while c != c'\0':
  *         if c & 0x80:
  *             return 1             # <<<<<<<<<<<<<<
@@ -25749,7 +25920,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1327
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1325
  *         if c & 0x80:
  *             return 1
  *         s += 1             # <<<<<<<<<<<<<<
@@ -25758,7 +25929,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
     __pyx_v_s = (__pyx_v_s + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1328
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1326
  *             return 1
  *         s += 1
  *         c = s[0]             # <<<<<<<<<<<<<<
@@ -25768,7 +25939,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_v_c = (__pyx_v_s[0]);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1329
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1327
  *         s += 1
  *         c = s[0]
  *     return 0             # <<<<<<<<<<<<<<
@@ -25778,7 +25949,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1322
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1320
  *     return 0
  * 
  * cdef inline int isutf8(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -25792,7 +25963,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1331
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1329
  *     return 0
  * 
  * cdef int check_string_utf8(bytes pystring):             # <<<<<<<<<<<<<<
@@ -25815,7 +25986,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("check_string_utf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1336
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1334
  *     bytes or ASCII control characters.
  *     """
  *     cdef const_xmlChar* s = _xcstr(pystring)             # <<<<<<<<<<<<<<
@@ -25824,7 +25995,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_s = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_pystring);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1337
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1335
  *     """
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)             # <<<<<<<<<<<<<<
@@ -25833,12 +26004,12 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   if (unlikely(__pyx_v_pystring == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_end = (__pyx_v_s + __pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1338
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1336
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef bint is_non_ascii = 0             # <<<<<<<<<<<<<<
@@ -25847,7 +26018,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_is_non_ascii = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1339
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1337
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef bint is_non_ascii = 0
  *     while s < c_end:             # <<<<<<<<<<<<<<
@@ -25858,7 +26029,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = ((__pyx_v_s < __pyx_v_c_end) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1340
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1338
  *     cdef bint is_non_ascii = 0
  *     while s < c_end:
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -25868,7 +26039,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1342
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1340
  *         if s[0] & 0x80:
  *             # skip over multi byte sequences
  *             while s < c_end and s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -25884,7 +26055,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
         }
         if (!__pyx_t_3) break;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1343
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1341
  *             # skip over multi byte sequences
  *             while s < c_end and s[0] & 0x80:
  *                 s += 1             # <<<<<<<<<<<<<<
@@ -25894,7 +26065,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
         __pyx_v_s = (__pyx_v_s + 1);
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1344
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1342
  *             while s < c_end and s[0] & 0x80:
  *                 s += 1
  *             is_non_ascii = 1             # <<<<<<<<<<<<<<
@@ -25906,7 +26077,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1345
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1343
  *                 s += 1
  *             is_non_ascii = 1
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -25922,7 +26093,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1346
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1344
  *             is_non_ascii = 1
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):
  *             return -1 # invalid!             # <<<<<<<<<<<<<<
@@ -25933,7 +26104,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1347
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1345
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):
  *             return -1 # invalid!
  *         s += 1             # <<<<<<<<<<<<<<
@@ -25943,7 +26114,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_v_s = (__pyx_v_s + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1348
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1346
  *             return -1 # invalid!
  *         s += 1
  *     return is_non_ascii             # <<<<<<<<<<<<<<
@@ -25953,7 +26124,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   __pyx_r = __pyx_v_is_non_ascii;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1331
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1329
  *     return 0
  * 
  * cdef int check_string_utf8(bytes pystring):             # <<<<<<<<<<<<<<
@@ -25970,7 +26141,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1350
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1348
  *     return is_non_ascii
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -25988,7 +26159,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicodeOrNone", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1351
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1349
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else None             # <<<<<<<<<<<<<<
@@ -25997,7 +26168,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
  */
   __Pyx_XDECREF(__pyx_r);
   if (((__pyx_v_s != NULL) != 0)) {
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -26009,7 +26180,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1350
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1348
  *     return is_non_ascii
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -26029,7 +26200,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1353
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1351
  *     return funicode(s) if s is not NULL else None
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -26047,7 +26218,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicodeOrEmpty", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1354
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1352
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else ''             # <<<<<<<<<<<<<<
@@ -26056,7 +26227,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
  */
   __Pyx_XDECREF(__pyx_r);
   if (((__pyx_v_s != NULL) != 0)) {
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -26068,7 +26239,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1353
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1351
  *     return funicode(s) if s is not NULL else None
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -26088,7 +26259,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1356
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1354
  *     return funicode(s) if s is not NULL else ''
  * 
  * cdef object funicode(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -26109,7 +26280,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicode", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1360
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1358
  *     cdef const_xmlChar* spos
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:             # <<<<<<<<<<<<<<
@@ -26119,7 +26290,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (LXML_UNICODE_STRINGS != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1361
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1359
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -26127,14 +26298,14 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *     is_non_ascii = 0
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1362
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1360
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')
  *     spos = s             # <<<<<<<<<<<<<<
@@ -26143,7 +26314,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_spos = __pyx_v_s;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1363
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1361
  *         return s.decode('UTF-8')
  *     spos = s
  *     is_non_ascii = 0             # <<<<<<<<<<<<<<
@@ -26152,7 +26323,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_is_non_ascii = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1364
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1362
  *     spos = s
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26163,7 +26334,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1365
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1363
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -26173,7 +26344,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = (((__pyx_v_spos[0]) & 0x80) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1366
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1364
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1             # <<<<<<<<<<<<<<
@@ -26182,7 +26353,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
       __pyx_v_is_non_ascii = 1;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1367
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1365
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1
  *             break             # <<<<<<<<<<<<<<
@@ -26192,7 +26363,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
       goto __pyx_L5_break;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1368
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1366
  *             is_non_ascii = 1
  *             break
  *         spos += 1             # <<<<<<<<<<<<<<
@@ -26203,7 +26374,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L5_break:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1367
  *             break
  *         spos += 1
  *     slen = spos - s             # <<<<<<<<<<<<<<
@@ -26212,7 +26383,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_slen = (__pyx_v_spos - __pyx_v_s);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1370
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1368
  *         spos += 1
  *     slen = spos - s
  *     if spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26222,7 +26393,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1371
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
  *     slen = spos - s
  *     if spos[0] != c'\0':
  *         slen += tree.xmlStrlen(spos)             # <<<<<<<<<<<<<<
@@ -26234,7 +26405,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1372
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1370
  *     if spos[0] != c'\0':
  *         slen += tree.xmlStrlen(spos)
  *     if is_non_ascii:             # <<<<<<<<<<<<<<
@@ -26244,7 +26415,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (__pyx_v_is_non_ascii != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1373
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1371
  *         slen += tree.xmlStrlen(spos)
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -26252,14 +26423,14 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1372
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')
  *     return <bytes>s[:slen]             # <<<<<<<<<<<<<<
@@ -26267,14 +26438,14 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * cdef bytes _utf8(object s):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject*)__pyx_t_2));
   __pyx_r = __pyx_t_2;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1356
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1354
  *     return funicode(s) if s is not NULL else ''
  * 
  * cdef object funicode(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -26293,7 +26464,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1376
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
  *     return <bytes>s[:slen]
  * 
  * cdef bytes _utf8(object s):             # <<<<<<<<<<<<<<
@@ -26316,7 +26487,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_utf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1383
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1381
  *     cdef int invalid
  *     cdef bytes utf8_string
  *     if not python.IS_PYTHON3 and type(s) is bytes:             # <<<<<<<<<<<<<<
@@ -26332,7 +26503,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1384
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1382
  *     cdef bytes utf8_string
  *     if not python.IS_PYTHON3 and type(s) is bytes:
  *         utf8_string = <bytes>s             # <<<<<<<<<<<<<<
@@ -26344,7 +26515,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1385
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1383
  *     if not python.IS_PYTHON3 and type(s) is bytes:
  *         utf8_string = <bytes>s
  *         invalid = check_string_utf8(utf8_string)             # <<<<<<<<<<<<<<
@@ -26355,7 +26526,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1386
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1384
  *         utf8_string = <bytes>s
  *         invalid = check_string_utf8(utf8_string)
  *     elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
@@ -26366,7 +26537,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1385
  *         invalid = check_string_utf8(utf8_string)
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')             # <<<<<<<<<<<<<<
@@ -26375,15 +26546,15 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
     if (unlikely(__pyx_v_s == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1388
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1386
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?             # <<<<<<<<<<<<<<
@@ -26394,7 +26565,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
  *         utf8_string = (<unicode>s).encode('utf8')
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?
  *     elif isinstance(s, bytes):             # <<<<<<<<<<<<<<
@@ -26405,25 +26576,25 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_3 = (__pyx_t_1 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1390
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1388
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?
  *     elif isinstance(s, bytes):
  *         utf8_string = bytes(s)             # <<<<<<<<<<<<<<
  *         invalid = check_string_utf8(utf8_string)
  *     else:
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_s);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_s);
     __Pyx_GIVEREF(__pyx_v_s);
-    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1389
  *     elif isinstance(s, bytes):
  *         utf8_string = bytes(s)
  *         invalid = check_string_utf8(utf8_string)             # <<<<<<<<<<<<<<
@@ -26435,33 +26606,33 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
  *         invalid = check_string_utf8(utf8_string)
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)             # <<<<<<<<<<<<<<
  *     if invalid:
  *         raise ValueError(
  */
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
     __Pyx_GIVEREF(__pyx_t_4);
     __pyx_t_4 = 0;
-    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1394
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1392
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:             # <<<<<<<<<<<<<<
@@ -26471,21 +26642,21 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_3 = (__pyx_v_invalid != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1395
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:
  *         raise ValueError(             # <<<<<<<<<<<<<<
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string
  */
-    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1397
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1395
  *         raise ValueError(
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string             # <<<<<<<<<<<<<<
@@ -26497,7 +26668,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_r = __pyx_v_utf8_string;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1376
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
  *     return <bytes>s[:slen]
  * 
  * cdef bytes _utf8(object s):             # <<<<<<<<<<<<<<
@@ -26518,7 +26689,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1399
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1397
  *     return utf8_string
  * 
  * cdef bytes _utf8orNone(object s):             # <<<<<<<<<<<<<<
@@ -26537,7 +26708,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_utf8orNone", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1398
  * 
  * cdef bytes _utf8orNone(object s):
  *     return _utf8(s) if s is not None else None             # <<<<<<<<<<<<<<
@@ -26547,7 +26718,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = (__pyx_v_s != Py_None);
   if ((__pyx_t_2 != 0)) {
-    __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -26559,7 +26730,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1399
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1397
  *     return utf8_string
  * 
  * cdef bytes _utf8orNone(object s):             # <<<<<<<<<<<<<<
@@ -26579,7 +26750,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1402
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
  *     return _utf8(s) if s is not None else None
  * 
  * cdef bint _isFilePath(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -26596,7 +26767,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("_isFilePath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1406
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1404
  *     cdef xmlChar c
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':             # <<<<<<<<<<<<<<
@@ -26606,7 +26777,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   __pyx_t_1 = (((__pyx_v_c_path[0]) == '/') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1407
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1405
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':
  *         return 1             # <<<<<<<<<<<<<<
@@ -26617,7 +26788,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1408
  * 
  *     # test if it looks like an absolute Windows path or URL
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \             # <<<<<<<<<<<<<<
@@ -26633,7 +26804,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   if (!__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1411
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1409
  *     # test if it looks like an absolute Windows path or URL
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):             # <<<<<<<<<<<<<<
@@ -26653,7 +26824,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *         c_path += 1             # <<<<<<<<<<<<<<
@@ -26662,7 +26833,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     __pyx_v_c_path = (__pyx_v_c_path + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1413
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1411
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *         c_path += 1
  *         if c_path[0] == c':' and c_path[1] in b'\0\\':             # <<<<<<<<<<<<<<
@@ -26687,7 +26858,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1414
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
  *         c_path += 1
  *         if c_path[0] == c':' and c_path[1] in b'\0\\':
  *             return 1  # C: or C:\...             # <<<<<<<<<<<<<<
@@ -26698,7 +26869,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1417
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1415
  * 
  *         # test if it looks like a URL with scheme://
  *         while (c_path[0] >= c'a' and c_path[0] <= c'z') or \             # <<<<<<<<<<<<<<
@@ -26715,7 +26886,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       }
       if (!__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1418
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1416
  *         # test if it looks like a URL with scheme://
  *         while (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *                 (c_path[0] >= c'A' and c_path[0] <= c'Z'):             # <<<<<<<<<<<<<<
@@ -26735,7 +26906,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       }
       if (!__pyx_t_3) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1417
  *         while (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *                 (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *             c_path += 1             # <<<<<<<<<<<<<<
@@ -26745,7 +26916,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       __pyx_v_c_path = (__pyx_v_c_path + 1);
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1420
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1418
  *                 (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *             c_path += 1
  *         if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':             # <<<<<<<<<<<<<<
@@ -26767,7 +26938,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1421
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
  *             c_path += 1
  *         if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':
  *             return 0             # <<<<<<<<<<<<<<
@@ -26781,7 +26952,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1422
  * 
  *     # assume it's a relative path
  *     return 1             # <<<<<<<<<<<<<<
@@ -26791,7 +26962,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1402
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
  *     return _utf8(s) if s is not None else None
  * 
  * cdef bint _isFilePath(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -26805,7 +26976,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1426
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
  *     return 1
  * 
  * cdef object _encodeFilename(object filename):             # <<<<<<<<<<<<<<
@@ -26830,7 +27001,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_encodeFilename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
  *     u"""Make sure a filename is 8-bit encoded (or None).
  *     """
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -26841,7 +27012,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1430
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1428
  *     """
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -26854,7 +27025,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -26865,7 +27036,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1432
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1430
  *         return None
  *     elif isinstance(filename, bytes):
  *         return filename             # <<<<<<<<<<<<<<
@@ -26878,7 +27049,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1433
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
  *     elif isinstance(filename, bytes):
  *         return filename
  *     elif isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -26889,7 +27060,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1434
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1432
  *         return filename
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -26898,25 +27069,25 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_filename8 = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1435
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1433
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):             # <<<<<<<<<<<<<<
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  */
-    __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_2 = (__pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_4)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1436
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1434
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:             # <<<<<<<<<<<<<<
@@ -26930,7 +27101,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __Pyx_XGOTREF(__pyx_t_7);
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1437
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1435
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:
  *                 return python.PyUnicode_AsEncodedString(             # <<<<<<<<<<<<<<
@@ -26939,14 +27110,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
           __Pyx_XDECREF(__pyx_r);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1438
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1436
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  *                     filename, _C_FILENAME_ENCODING, NULL)             # <<<<<<<<<<<<<<
  *             except UnicodeEncodeError:
  *                 pass
  */
-          __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_GOTREF(__pyx_t_3);
           __pyx_r = __pyx_t_3;
           __pyx_t_3 = 0;
@@ -26959,7 +27130,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __pyx_L5_error:;
         __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1439
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1437
  *                 return python.PyUnicode_AsEncodedString(
  *                     filename, _C_FILENAME_ENCODING, NULL)
  *             except UnicodeEncodeError:             # <<<<<<<<<<<<<<
@@ -26995,7 +27166,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1441
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1439
  *             except UnicodeEncodeError:
  *                 pass
  *         return filename8             # <<<<<<<<<<<<<<
@@ -27009,21 +27180,21 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1443
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1441
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1426
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
  *     return 1
  * 
  * cdef object _encodeFilename(object filename):             # <<<<<<<<<<<<<<
@@ -27043,7 +27214,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1445
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1443
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -27060,7 +27231,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_decodeFilename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1448
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1446
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))             # <<<<<<<<<<<<<<
@@ -27068,13 +27239,13 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1445
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1443
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -27093,7 +27264,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1450
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1448
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
  * 
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):             # <<<<<<<<<<<<<<
@@ -27118,7 +27289,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_decodeFilenameWithLength", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1451
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     if _isFilePath(c_path):             # <<<<<<<<<<<<<<
@@ -27128,7 +27299,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   __pyx_t_1 = (__pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1454
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1452
  *     """
  *     if _isFilePath(c_path):
  *         try:             # <<<<<<<<<<<<<<
@@ -27142,7 +27313,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __Pyx_XGOTREF(__pyx_t_4);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
  *     if _isFilePath(c_path):
  *         try:
  *             return python.PyUnicode_Decode(             # <<<<<<<<<<<<<<
@@ -27151,14 +27322,14 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  */
         __Pyx_XDECREF(__pyx_r);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1456
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1454
  *         try:
  *             return python.PyUnicode_Decode(
  *                 <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)             # <<<<<<<<<<<<<<
  *         except UnicodeDecodeError:
  *             pass
  */
-        __pyx_t_5 = PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_5 = PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __pyx_r = __pyx_t_5;
         __pyx_t_5 = 0;
@@ -27171,7 +27342,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __pyx_L4_error:;
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1457
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
  *             return python.PyUnicode_Decode(
  *                 <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -27207,7 +27378,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1459
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1457
  *         except UnicodeDecodeError:
  *             pass
  *     try:             # <<<<<<<<<<<<<<
@@ -27221,7 +27392,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __Pyx_XGOTREF(__pyx_t_2);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1460
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1458
  *             pass
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -27229,7 +27400,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  *         # this is a stupid fallback, but it might still work...
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = __Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+      __pyx_t_5 = __Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1458; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
@@ -27242,7 +27413,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_L12_error:;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1459
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')
  *     except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -27252,12 +27423,12 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_t_6 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
     if (__pyx_t_6) {
       __Pyx_AddTraceback("lxml.etree._decodeFilenameWithLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_8);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
  *     except UnicodeDecodeError:
  *         # this is a stupid fallback, but it might still work...
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')             # <<<<<<<<<<<<<<
@@ -27265,7 +27436,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  * cdef object _encodeFilenameUTF8(object filename):
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_9 = __Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k_replace, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+      __pyx_t_9 = __Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k_replace, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __pyx_r = __pyx_t_9;
       __pyx_t_9 = 0;
@@ -27305,7 +27476,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_L19_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1450
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1448
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
  * 
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):             # <<<<<<<<<<<<<<
@@ -27327,7 +27498,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
  * 
  * cdef object _encodeFilenameUTF8(object filename):             # <<<<<<<<<<<<<<
@@ -27362,7 +27533,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __Pyx_RefNannySetupContext("_encodeFilenameUTF8", 0);
   __Pyx_INCREF(__pyx_v_filename);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1470
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1468
  *     """
  *     cdef char* c_filename
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -27373,7 +27544,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
  *     cdef char* c_filename
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -27386,7 +27557,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1472
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1470
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -27397,7 +27568,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1473
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
  *         return None
  *     elif isinstance(filename, bytes):
  *         if not check_string_utf8(<bytes>filename):             # <<<<<<<<<<<<<<
@@ -27407,7 +27578,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_check_string_utf8(((PyObject*)__pyx_v_filename)) != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1475
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1473
  *         if not check_string_utf8(<bytes>filename):
  *             # plain ASCII!
  *             return filename             # <<<<<<<<<<<<<<
@@ -27420,7 +27591,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       goto __pyx_L0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1476
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1474
  *             # plain ASCII!
  *             return filename
  *         c_filename = _cstr(<bytes>filename)             # <<<<<<<<<<<<<<
@@ -27429,7 +27600,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
     __pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1477
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1475
  *             return filename
  *         c_filename = _cstr(<bytes>filename)
  *         try:             # <<<<<<<<<<<<<<
@@ -27443,7 +27614,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __Pyx_XGOTREF(__pyx_t_5);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1480
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1478
  *             # try to decode with default encoding
  *             filename = python.PyUnicode_Decode(
  *                 c_filename, len(<bytes>filename),             # <<<<<<<<<<<<<<
@@ -27452,18 +27623,18 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
         if (unlikely(__pyx_v_filename == Py_None)) {
           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         }
-        __pyx_t_6 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_6 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1479
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1477
  *         try:
  *             # try to decode with default encoding
  *             filename = python.PyUnicode_Decode(             # <<<<<<<<<<<<<<
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)
  */
-        __pyx_t_7 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_6, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1479; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_7 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_6, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_7);
         __pyx_t_7 = 0;
@@ -27475,7 +27646,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_L5_error:;
       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1482
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1480
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:             # <<<<<<<<<<<<<<
@@ -27485,14 +27656,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
       if (__pyx_t_8) {
         __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_INCREF(__pyx_t_9);
         __pyx_v_decode_exc = __pyx_t_9;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1483
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1481
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:
  *             try:             # <<<<<<<<<<<<<<
@@ -27506,7 +27677,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __Pyx_XGOTREF(__pyx_t_13);
           /*try:*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1485
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1483
  *             try:
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')             # <<<<<<<<<<<<<<
@@ -27515,13 +27686,13 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
             if (unlikely(__pyx_v_filename == Py_None)) {
               PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-              {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+              {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1483; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
             }
-            __pyx_t_14 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+            __pyx_t_14 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1483; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
             __Pyx_GOTREF(__pyx_t_14);
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1486
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1484
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')
  *                 return filename             # <<<<<<<<<<<<<<
@@ -27543,7 +27714,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_L15_error:;
           __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1485
  *                 (<bytes>filename).decode('utf8')
  *                 return filename
  *             except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -27553,12 +27724,12 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
           if (__pyx_t_8) {
             __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-            if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+            if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
             __Pyx_GOTREF(__pyx_t_14);
             __Pyx_GOTREF(__pyx_t_15);
             __Pyx_GOTREF(__pyx_t_16);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1486
  *                 return filename
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception             # <<<<<<<<<<<<<<
@@ -27566,7 +27737,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *         return (<unicode>filename).encode('utf8')
  */
             __Pyx_Raise(__pyx_v_decode_exc, 0, 0, 0);
-            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1488; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
             __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
             __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
@@ -27621,7 +27792,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1489
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -27632,7 +27803,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):
  *         return (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -27642,9 +27813,9 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     __Pyx_XDECREF(__pyx_r);
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_10 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_10);
     __pyx_r = __pyx_t_10;
     __pyx_t_10 = 0;
@@ -27652,21 +27823,21 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
  *         return (<unicode>filename).encode('utf8')
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef tuple _getNsTag(tag):
  */
-    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_10);
     __Pyx_Raise(__pyx_t_10, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
  * 
  * cdef object _encodeFilenameUTF8(object filename):             # <<<<<<<<<<<<<<
@@ -27692,7 +27863,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef tuple _getNsTag(tag):             # <<<<<<<<<<<<<<
@@ -27709,7 +27880,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getNsTag", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1496
  *     Return None for NS uri if no namespace URI provided.
  *     """
  *     return __getNsTag(tag, 0)             # <<<<<<<<<<<<<<
@@ -27717,13 +27888,13 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
  * cdef tuple _getNsTagWithEmptyNs(tag):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef tuple _getNsTag(tag):             # <<<<<<<<<<<<<<
@@ -27742,7 +27913,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
  *     return __getNsTag(tag, 0)
  * 
  * cdef tuple _getNsTagWithEmptyNs(tag):             # <<<<<<<<<<<<<<
@@ -27759,7 +27930,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getNsTagWithEmptyNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1503
  *     part is '{}'.
  *     """
  *     return __getNsTag(tag, 1)             # <<<<<<<<<<<<<<
@@ -27767,13 +27938,13 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
  * cdef tuple __getNsTag(tag, bint empty_ns):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
  *     return __getNsTag(tag, 0)
  * 
  * cdef tuple _getNsTagWithEmptyNs(tag):             # <<<<<<<<<<<<<<
@@ -27792,7 +27963,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1507
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
  *     return __getNsTag(tag, 1)
  * 
  * cdef tuple __getNsTag(tag, bint empty_ns):             # <<<<<<<<<<<<<<
@@ -27819,7 +27990,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_RefNannySetupContext("__getNsTag", 0);
   __Pyx_INCREF(__pyx_v_tag);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1510
  *     cdef Py_ssize_t taglen
  *     cdef Py_ssize_t nslen
  *     cdef bytes ns = None             # <<<<<<<<<<<<<<
@@ -27829,7 +28000,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_INCREF(Py_None);
   __pyx_v_ns = ((PyObject*)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1514
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1512
  *     cdef bytes ns = None
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):             # <<<<<<<<<<<<<<
@@ -27845,7 +28016,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1515
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1513
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):
  *         tag = (<QName>tag).text             # <<<<<<<<<<<<<<
@@ -27860,19 +28031,19 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1516
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1514
  *     if not _isString(tag) and isinstance(tag, QName):
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)             # <<<<<<<<<<<<<<
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1517
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1515
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)             # <<<<<<<<<<<<<<
@@ -27881,7 +28052,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
   __pyx_v_c_tag = PyBytes_AS_STRING(__pyx_v_tag);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1516
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':             # <<<<<<<<<<<<<<
@@ -27891,7 +28062,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_3 = (((__pyx_v_c_tag[0]) == '{') != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1519
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1517
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':
  *         c_tag += 1             # <<<<<<<<<<<<<<
@@ -27900,7 +28071,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
       __pyx_v_c_tag = (__pyx_v_c_tag + 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1520
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
  *     if c_tag[0] == c'{':
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')             # <<<<<<<<<<<<<<
@@ -27909,7 +28080,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_c_ns_end = strchr(__pyx_v_c_tag, '}');
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1521
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1519
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:             # <<<<<<<<<<<<<<
@@ -27919,7 +28090,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_c_ns_end == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1522
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1520
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"             # <<<<<<<<<<<<<<
@@ -27927,10 +28098,10 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  */
       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Invalid_tag_name, 0, 0);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1523
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1521
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag             # <<<<<<<<<<<<<<
@@ -27939,7 +28110,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_nslen = (__pyx_v_c_ns_end - __pyx_v_c_tag);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1522
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2             # <<<<<<<<<<<<<<
@@ -27948,7 +28119,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_taglen = ((PyBytes_GET_SIZE(__pyx_v_tag) - __pyx_v_nslen) - 2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1525
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1523
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:             # <<<<<<<<<<<<<<
@@ -27958,7 +28129,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_taglen == 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1526
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
@@ -27966,10 +28137,10 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *             ns = <bytes>c_tag[:nslen]
  */
       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Empty_tag_name, 0, 0);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1527
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1525
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:             # <<<<<<<<<<<<<<
@@ -27979,14 +28150,14 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_nslen > 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1528
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1526
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]             # <<<<<<<<<<<<<<
  *         elif empty_ns:
  *             ns = b''
  */
-      __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_5 = __pyx_t_4;
       __Pyx_INCREF(__pyx_t_5);
@@ -27996,7 +28167,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
       goto __pyx_L7;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1529
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1527
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:             # <<<<<<<<<<<<<<
@@ -28006,7 +28177,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = (__pyx_v_empty_ns != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1528
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:
  *             ns = b''             # <<<<<<<<<<<<<<
@@ -28019,14 +28190,14 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1531
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1529
  *         elif empty_ns:
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]             # <<<<<<<<<<<<<<
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"
  */
-    __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_t_4 = __pyx_t_5;
     __Pyx_INCREF(__pyx_t_4);
@@ -28036,7 +28207,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1532
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:             # <<<<<<<<<<<<<<
@@ -28046,7 +28217,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_3 = ((PyBytes_GET_SIZE(__pyx_v_tag) == 0) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1533
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1531
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
@@ -28054,11 +28225,11 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  * 
  */
     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Empty_tag_name, 0, 0);
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1532
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"
  *     return ns, tag             # <<<<<<<<<<<<<<
@@ -28066,7 +28237,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  * cdef inline int _pyXmlNameIsValid(name_utf8):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_ns);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ns);
@@ -28078,7 +28249,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_4 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1507
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
  *     return __getNsTag(tag, 1)
  * 
  * cdef tuple __getNsTag(tag, bint empty_ns):             # <<<<<<<<<<<<<<
@@ -28100,7 +28271,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
  *     return ns, tag
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -28113,7 +28284,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_pyXmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1535
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):
  *     return _xmlNameIsValid(_xcstr(name_utf8))             # <<<<<<<<<<<<<<
@@ -28123,7 +28294,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   __pyx_r = __pyx_f_4lxml_5etree__xmlNameIsValid((const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf8));
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
  *     return ns, tag
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -28137,7 +28308,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
  *     return _xmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -28150,7 +28321,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_pyHtmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1538
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):
  *     return _htmlNameIsValid(_xcstr(name_utf8))             # <<<<<<<<<<<<<<
@@ -28160,7 +28331,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   __pyx_r = __pyx_f_4lxml_5etree__htmlNameIsValid((const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf8));
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
  *     return _xmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -28174,7 +28345,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1542
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
  *     return _htmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28187,7 +28358,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_xmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1541
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):
  *     return tree.xmlValidateNCName(c_name, 0) == 0             # <<<<<<<<<<<<<<
@@ -28197,7 +28368,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   __pyx_r = (xmlValidateNCName(__pyx_v_c_name, 0) == 0);
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1542
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
  *     return _htmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28211,7 +28382,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
  *     return tree.xmlValidateNCName(c_name, 0) == 0
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28227,7 +28398,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_htmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1546
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1544
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -28243,7 +28414,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -28254,7 +28425,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1548
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1546
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -28265,7 +28436,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_t_3 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':             # <<<<<<<<<<<<<<
@@ -28286,7 +28457,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       case '<':
       case '>':
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1550
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1548
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0             # <<<<<<<<<<<<<<
@@ -28299,7 +28470,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       default: break;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1551
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1549
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -28309,7 +28480,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1550
  *             return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -28319,7 +28490,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
  *     return tree.xmlValidateNCName(c_name, 0) == 0
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28333,7 +28504,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
  *     return 1
  * 
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28350,7 +28521,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_characterReferenceIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1556
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
  *     cdef bint is_hex
  *     if c_name[0] == c'x':             # <<<<<<<<<<<<<<
@@ -28360,7 +28531,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_t_1 = (((__pyx_v_c_name[0]) == 'x') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1557
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1555
  *     cdef bint is_hex
  *     if c_name[0] == c'x':
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -28369,7 +28540,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
     __pyx_v_c_name = (__pyx_v_c_name + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1558
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1556
  *     if c_name[0] == c'x':
  *         c_name += 1
  *         is_hex = 1             # <<<<<<<<<<<<<<
@@ -28381,7 +28552,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1560
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1558
  *         is_hex = 1
  *     else:
  *         is_hex = 0             # <<<<<<<<<<<<<<
@@ -28392,7 +28563,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1561
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1559
  *     else:
  *         is_hex = 0
  *     if c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -28402,7 +28573,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_t_1 = (((__pyx_v_c_name[0]) == '\x00') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1562
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1560
  *         is_hex = 0
  *     if c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -28413,7 +28584,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1563
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1561
  *     if c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -28424,7 +28595,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1564
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1562
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':             # <<<<<<<<<<<<<<
@@ -28440,7 +28611,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1565
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1563
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:             # <<<<<<<<<<<<<<
@@ -28450,7 +28621,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_3 = ((!(__pyx_v_is_hex != 0)) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1566
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1564
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:
  *                 return 0             # <<<<<<<<<<<<<<
@@ -28461,7 +28632,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         goto __pyx_L0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1567
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1565
  *             if not is_hex:
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):             # <<<<<<<<<<<<<<
@@ -28475,7 +28646,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1566
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):             # <<<<<<<<<<<<<<
@@ -28489,7 +28660,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1569
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1567
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0             # <<<<<<<<<<<<<<
@@ -28506,7 +28677,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1570
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -28516,7 +28687,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1571
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1569
  *                     return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -28526,7 +28697,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
  *     return 1
  * 
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -28540,7 +28711,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1573
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1571
  *     return 1
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28559,7 +28730,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_tagValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1574
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1572
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -28569,7 +28740,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1574
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -28578,35 +28749,35 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1575
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1573
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid tag name %r" %             # <<<<<<<<<<<<<<
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0
  */
-    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_tag_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_tag_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1575
  *         raise ValueError(u"Invalid tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -28616,7 +28787,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1573
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1571
  *     return 1
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28635,7 +28806,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
  *     return 0
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28654,7 +28825,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_htmlTagValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1580
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1578
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -28664,7 +28835,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1582
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1580
  *     if not _pyHtmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid HTML tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -28673,35 +28844,35 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1581
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid HTML tag name %r" %             # <<<<<<<<<<<<<<
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0
  */
-    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_HTML_tag_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_HTML_tag_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1581
  *         raise ValueError(u"Invalid HTML tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -28711,7 +28882,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
  *     return 0
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28730,7 +28901,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1585
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
  *     return 0
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28749,7 +28920,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attributeValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1586
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1584
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):             # <<<<<<<<<<<<<<
@@ -28759,7 +28930,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1588
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1586
  *     if not _pyXmlNameIsValid(name_utf):
  *         raise ValueError(u"Invalid attribute name %r" %
  *                          (<bytes>name_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -28768,35 +28939,35 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
  */
     if (unlikely(__pyx_v_name_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1587
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1585
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):
  *         raise ValueError(u"Invalid attribute name %r" %             # <<<<<<<<<<<<<<
  *                          (<bytes>name_utf).decode('utf8'))
  *     return 0
  */
-    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_attribute_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_attribute_name_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1589
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1587
  *         raise ValueError(u"Invalid attribute name %r" %
  *                          (<bytes>name_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -28806,7 +28977,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1585
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
  *     return 0
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28825,7 +28996,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1591
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1589
  *     return 0
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28844,7 +29015,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_prefixValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1592
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1590
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -28854,7 +29025,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1594
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1592
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid namespace prefix %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -28863,35 +29034,35 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1593
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1591
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(u"Invalid namespace prefix %r" %             # <<<<<<<<<<<<<<
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0
  */
-    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_namespace_prefix_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_namespace_prefix_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1595
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1593
  *         raise ValueError(u"Invalid namespace prefix %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -28901,7 +29072,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1591
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1589
  *     return 0
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28920,7 +29091,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1597
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1595
  *     return 0
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:             # <<<<<<<<<<<<<<
@@ -28940,7 +29111,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_uriValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1598
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1596
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))             # <<<<<<<<<<<<<<
@@ -28949,7 +29120,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   __pyx_v_c_uri = xmlParseURI(PyBytes_AS_STRING(__pyx_v_uri_utf));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1599
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1597
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:             # <<<<<<<<<<<<<<
@@ -28959,7 +29130,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   __pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1601
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1599
  *     if c_uri is NULL:
  *         raise ValueError(u"Invalid namespace URI %r" %
  *                          (<bytes>uri_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -28968,35 +29139,35 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
     if (unlikely(__pyx_v_uri_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_uri_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_uri_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1600
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1598
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:
  *         raise ValueError(u"Invalid namespace URI %r" %             # <<<<<<<<<<<<<<
  *                          (<bytes>uri_utf).decode('utf8'))
  *     uri.xmlFreeURI(c_uri)
  */
-    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_namespace_URI_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Invalid_namespace_URI_r, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1602
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1600
  *         raise ValueError(u"Invalid namespace URI %r" %
  *                          (<bytes>uri_utf).decode('utf8'))
  *     uri.xmlFreeURI(c_uri)             # <<<<<<<<<<<<<<
@@ -29005,7 +29176,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   xmlFreeURI(__pyx_v_c_uri);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1603
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1601
  *                          (<bytes>uri_utf).decode('utf8'))
  *     uri.xmlFreeURI(c_uri)
  *     return 0             # <<<<<<<<<<<<<<
@@ -29015,7 +29186,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1597
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1595
  *     return 0
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:             # <<<<<<<<<<<<<<
@@ -29034,7 +29205,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1605
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1603
  *     return 0
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -29051,7 +29222,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_namespacedName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1606
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1604
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)             # <<<<<<<<<<<<<<
@@ -29059,13 +29230,13 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1605
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1603
  *     return 0
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -29084,7 +29255,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1608
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1606
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -29105,7 +29276,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_namespacedNameFromNsName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1609
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1607
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:             # <<<<<<<<<<<<<<
@@ -29115,7 +29286,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   __pyx_t_1 = ((__pyx_v_href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1610
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1608
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:
  *         return funicode(name)             # <<<<<<<<<<<<<<
@@ -29123,14 +29294,14 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *             and not python.IS_PYPY and python.PY_VERSION_HEX >= 0x02060000):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1611
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1609
  *     if href is NULL:
  *         return funicode(name)
  *     elif (python.LXML_UNICODE_STRINGS             # <<<<<<<<<<<<<<
@@ -29139,7 +29310,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  */
   if ((LXML_UNICODE_STRINGS != 0)) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1612
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1610
  *         return funicode(name)
  *     elif (python.LXML_UNICODE_STRINGS
  *             and not python.IS_PYPY and python.PY_VERSION_HEX >= 0x02060000):             # <<<<<<<<<<<<<<
@@ -29159,7 +29330,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1613
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1611
  *     elif (python.LXML_UNICODE_STRINGS
  *             and not python.IS_PYPY and python.PY_VERSION_HEX >= 0x02060000):
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
@@ -29167,7 +29338,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = PyUnicode_FromFormat(__pyx_k_s_s_2, __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyUnicode_FromFormat(__pyx_k_s_s_2, __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -29175,19 +29346,19 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1615
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1613
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
  *             return (<bytes>s).decode('utf8')
  */
-    __pyx_t_2 = PyBytes_FromFormat(__pyx_k_s_s_2, __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyBytes_FromFormat(__pyx_k_s_s_2, __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_s = ((PyObject*)__pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1616
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1614
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):             # <<<<<<<<<<<<<<
@@ -29202,7 +29373,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1617
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1615
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
  *             return (<bytes>s).decode('utf8')             # <<<<<<<<<<<<<<
@@ -29212,9 +29383,9 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
       __Pyx_XDECREF(__pyx_r);
       if (unlikely(__pyx_v_s == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_s), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_s), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_r = __pyx_t_2;
       __pyx_t_2 = 0;
@@ -29222,7 +29393,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1619
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1617
  *             return (<bytes>s).decode('utf8')
  *         else:
  *             return s             # <<<<<<<<<<<<<<
@@ -29236,7 +29407,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1608
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1606
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -29256,7 +29427,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1621
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1619
  *             return s
  * 
  * cdef _getFilenameForFile(source):             # <<<<<<<<<<<<<<
@@ -29279,7 +29450,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   CYTHON_UNUSED int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getFilenameForFile", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1627
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1625
  *     """
  *     # urllib2 provides a geturl() method
  *     try:             # <<<<<<<<<<<<<<
@@ -29293,7 +29464,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1628
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1626
  *     # urllib2 provides a geturl() method
  *     try:
  *         return source.geturl()             # <<<<<<<<<<<<<<
@@ -29301,9 +29472,9 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1626; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1626; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_r = __pyx_t_5;
@@ -29318,7 +29489,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1629
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1627
  *     try:
  *         return source.geturl()
  *     except:             # <<<<<<<<<<<<<<
@@ -29343,7 +29514,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1632
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1630
  *         pass
  *     # file instances have a name attribute
  *     try:             # <<<<<<<<<<<<<<
@@ -29357,19 +29528,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_1);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1633
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1631
  *     # file instances have a name attribute
  *     try:
  *         filename = source.name             # <<<<<<<<<<<<<<
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_filename = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1634
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1632
  *     try:
  *         filename = source.name
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -29379,7 +29550,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1635
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1633
  *         filename = source.name
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -29387,12 +29558,12 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1635; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_filename);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename);
         __Pyx_GIVEREF(__pyx_v_filename);
-        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1635; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_r = __pyx_t_4;
@@ -29408,7 +29579,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1636
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1634
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -29433,7 +29604,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L18_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1639
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1637
  *         pass
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:             # <<<<<<<<<<<<<<
@@ -29447,19 +29618,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1640
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1638
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:
  *         filename = source.filename             # <<<<<<<<<<<<<<
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1641
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1639
  *     try:
  *         filename = source.filename
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -29469,7 +29640,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1642
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1640
  *         filename = source.filename
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -29477,12 +29648,12 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1642; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_INCREF(__pyx_v_filename);
         PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
         __Pyx_GIVEREF(__pyx_v_filename);
-        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1642; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         __pyx_r = __pyx_t_5;
@@ -29498,7 +29669,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1643
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1641
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -29523,7 +29694,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L27_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1646
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1644
  *         pass
  *     # can't determine filename
  *     return None             # <<<<<<<<<<<<<<
@@ -29533,7 +29704,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   __pyx_r = Py_None;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1621
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1619
  *             return s
  * 
  * cdef _getFilenameForFile(source):             # <<<<<<<<<<<<<<
@@ -33219,7 +33390,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_6__repr__(struct __pyx_ob
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   }
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__21, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__22, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -37134,7 +37305,7 @@ static struct __pyx_obj_4lxml_5etree__BaseErrorLog *__pyx_f_4lxml_5etree__getGlo
  *         return log
  * 
  */
-      __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_9);
       __pyx_v_log = ((struct __pyx_obj_4lxml_5etree__RotatingErrorLog *)__pyx_t_9);
@@ -38266,7 +38437,7 @@ static PyObject *__pyx_f_4lxml_5etree___initErrorConstants(void) {
  */
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -53111,9 +53282,9 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_b__24, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_b__25, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_3 != 0)) {
-    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_kp_b__25, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_kp_b__26, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = (__pyx_t_4 != 0);
   } else {
     __pyx_t_5 = (__pyx_t_3 != 0);
@@ -55576,7 +55747,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  */
-      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -55600,7 +55771,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  */
-      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -55670,7 +55841,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:
  */
-    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -56791,9 +56962,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
  *                 path = "." + path
  *         return root.find(path, namespaces)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__29, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__30, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__30, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__31, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_4) {
 
@@ -57003,9 +57174,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
  *                 path = "." + path
  *         return root.findtext(path, default, namespaces)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__31, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__32, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__30, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__31, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_4) {
 
@@ -57208,9 +57379,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
  *                 path = "." + path
  *         return root.findall(path, namespaces)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__32, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__33, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__30, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__31, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_4) {
 
@@ -57410,9 +57581,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
  *                 path = "." + path
  *         return root.iterfind(path, namespaces)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__33, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__34, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__30, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s__31, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_4) {
 
@@ -63030,9 +63201,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
     __Pyx_INCREF(__pyx_v_tag);
     __pyx_t_1 = __pyx_v_tag;
-    __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__34, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__35, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_3) {
-      __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__35, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_5 = __pyx_t_2;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -63101,7 +63272,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                     name = None
  *                 if href is None:
  */
-      __pyx_t_3 = (__Pyx_PyBytes_Equals(__pyx_v_name, __pyx_kp_b__34, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = (__Pyx_PyBytes_Equals(__pyx_v_name, __pyx_kp_b__35, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2559
@@ -63147,7 +63318,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                     href = None  # wildcard: any namespace, including none
  *                 self._py_tags.append((href, name))
  */
-      __pyx_t_5 = (__Pyx_PyBytes_Equals(__pyx_v_href, __pyx_kp_b__34, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = (__Pyx_PyBytes_Equals(__pyx_v_href, __pyx_kp_b__35, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       if (__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2563
@@ -65541,8 +65712,8 @@ static int __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(struct __pyx_ob
  *         else:
  *             events = (u"start",)
  */
-    __Pyx_INCREF(__pyx_tuple__36);
-    __pyx_v_events = __pyx_tuple__36;
+    __Pyx_INCREF(__pyx_tuple__37);
+    __pyx_v_events = __pyx_tuple__37;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -65554,8 +65725,8 @@ static int __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(struct __pyx_ob
  *         self._start_element = element
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
  */
-    __Pyx_INCREF(__pyx_tuple__37);
-    __pyx_v_events = __pyx_tuple__37;
+    __Pyx_INCREF(__pyx_tuple__38);
+    __pyx_v_events = __pyx_tuple__38;
   }
   __pyx_L3:;
 
@@ -68358,7 +68529,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *                          " efficient, use fromstring() instead")
  *     if parser is None:
  */
-    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -68751,7 +68922,7 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
  *     sys.stdout.write(xml)
  * 
  */
-    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, __pyx_kp_s__21); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, __pyx_kp_s__22); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF_SET(__pyx_v_xml, __pyx_t_4);
     __pyx_t_4 = 0;
@@ -69012,7 +69183,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")
  */
-      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -69036,7 +69207,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  */
-      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -69075,7 +69246,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:
  */
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -70181,7 +70352,7 @@ static int __pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode(struct __pyx_obj_4l
  *         return 0
  * 
  */
-    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ReferenceError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ReferenceError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -72221,7 +72392,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
  */
   __pyx_t_2 = (__pyx_v_tag != Py_None);
   if (__pyx_t_2) {
-    __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__34, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__35, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -72310,7 +72481,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
  *         return iter(children)
  * 
  */
-    __pyx_t_1 = PyObject_GetItem(__pyx_v_children, __pyx_slice__43); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+    __pyx_t_1 = PyObject_GetItem(__pyx_v_children, __pyx_slice__44); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF_SET(__pyx_v_children, __pyx_t_1);
     __pyx_t_1 = 0;
@@ -73093,9 +73264,9 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__24, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__25, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_2 != 0)) {
-    __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_u__25, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_u__26, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = (__pyx_t_3 != 0);
   } else {
     __pyx_t_4 = (__pyx_t_2 != 0);
@@ -75296,9 +75467,9 @@ static int __pyx_pf_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_2__set__(
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!Py_OptimizeFlag)) {
-    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__24, __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__25, __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if ((__pyx_t_2 != 0)) {
-      __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_u__25, __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_kp_u__26, __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_4 = (__pyx_t_3 != 0);
     } else {
       __pyx_t_4 = (__pyx_t_2 != 0);
@@ -76687,7 +76858,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  */
         __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_tag, __pyx_n_s_split); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
         __Pyx_GOTREF(__pyx_t_10);
-        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_11, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;};
@@ -81572,9 +81743,9 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  */
     __pyx_t_2 = (__pyx_v_name == Py_None);
     if (!__pyx_t_2) {
-      __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_slice__45, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_slice__46, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s__46, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s__47, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_11 = __pyx_t_1;
     } else {
@@ -99696,8 +99867,8 @@ static int __pyx_pf_4lxml_5etree_13XMLPullParser___init__(struct __pyx_obj_4lxml
  *         self._setBaseURL(base_url)
  *         self._collectEvents(events, tag)
  */
-    __Pyx_INCREF(__pyx_tuple__47);
-    __Pyx_DECREF_SET(__pyx_v_events, __pyx_tuple__47);
+    __Pyx_INCREF(__pyx_tuple__48);
+    __Pyx_DECREF_SET(__pyx_v_events, __pyx_tuple__48);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -100833,8 +101004,8 @@ static int __pyx_pf_4lxml_5etree_14HTMLPullParser___init__(struct __pyx_obj_4lxm
  *         self._setBaseURL(base_url)
  *         self._collectEvents(events, tag)
  */
-    __Pyx_INCREF(__pyx_tuple__48);
-    __Pyx_DECREF_SET(__pyx_v_events, __pyx_tuple__48);
+    __Pyx_INCREF(__pyx_tuple__49);
+    __Pyx_DECREF_SET(__pyx_v_events, __pyx_tuple__49);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -102428,7 +102599,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *                 u"Unicode strings with encoding declaration are not supported. "
  *                 u"Please use bytes input or XML fragments without declaration.")
  */
-      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -103981,7 +104152,7 @@ static PyObject *__pyx_f_4lxml_5etree_17_SaxParserContext__setEventFilter(struct
   if (!__pyx_t_2) {
     __pyx_t_3 = (__pyx_v_tag == Py_None);
     if (!__pyx_t_3) {
-      __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__34, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__35, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_5 = __pyx_t_4;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -114194,7 +114365,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_6);
@@ -115098,7 +115269,7 @@ static void __pyx_f_4lxml_5etree__writeDoctype(xmlOutputBuffer *__pyx_v_c_buffer
  * 
  * cdef void _writeNodeToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-  xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__21);
+  xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__22);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":200
  * # low-level serialisation functions
@@ -115487,7 +115658,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  * 
  * cdef void _writeDeclarationToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k__21);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k__22);
     goto __pyx_L14;
   }
   __pyx_L14:;
@@ -115628,7 +115799,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  * 
  * cdef void _writeDtdToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k__51);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k__52);
     break;
   }
 
@@ -115794,7 +115965,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         else:
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__52);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__53);
       goto __pyx_L6;
     }
     /*else*/ {
@@ -115826,7 +115997,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *     if not c_dtd.entities and not c_dtd.elements and \
  *            not c_dtd.attributes and not c_dtd.notations and \
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k__53);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k__54);
     goto __pyx_L5;
   }
   __pyx_L5:;
@@ -115888,7 +116059,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k__54);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k__55);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":303
  *            not c_dtd.pentities:
@@ -115907,7 +116078,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *     if c_dtd.notations and not c_buffer.error:
  *         c_buf = tree.xmlBufferCreate()
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__55);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__56);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":305
  *         return
@@ -116045,7 +116216,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  * 
  * cdef void _writeTail(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__56);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k__57);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":278
  *         tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")
@@ -116311,7 +116482,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *         c_sibling = c_sibling.next
  * 
  */
-      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__21);
+      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__22);
       goto __pyx_L8;
     }
     __pyx_L8:;
@@ -116460,7 +116631,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)
  */
-      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__21);
+      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k__22);
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -119041,7 +119212,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
         /*finally:*/ {
           /*normal exit:*/{
             if (__pyx_t_10) {
-              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__57, NULL);
+              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__58, NULL);
               __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
               if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
               __Pyx_GOTREF(__pyx_t_14);
@@ -120243,7 +120414,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -120510,7 +120681,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  */
     __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
@@ -121393,7 +121564,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
  *         tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))
  * 
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__60);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__61);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -121482,7 +121653,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -121654,7 +121825,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  *         self._write_qname(name, prefix)
  *         self._write_attributes_and_namespaces(
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__62);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__63);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":758
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
@@ -121698,7 +121869,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  *         self._handle_error(self._c_out.error)
  * 
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__63);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__64);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":762
  *             attributes, flat_namespace_map, new_namespaces)
@@ -122176,7 +122347,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
  *             tree.xmlOutputBufferWrite(self._c_out, 1, '"')
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k__64);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k__65);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":786
  *             self._write_qname(name, prefix)
@@ -122194,7 +122365,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  * 
  *     cdef _write_end_element(self, element_config):
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__53);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__54);
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -122272,7 +122443,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -122296,10 +122467,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     }
     __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->_element_stack, -1, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_slice__66, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_slice__67, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_slice__67, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_slice__68, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -122321,7 +122492,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  */
     __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -122342,7 +122513,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   }
   __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_self->_element_stack); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_slice__69, 1, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_slice__70, 1, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
@@ -122407,7 +122578,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  *         self._write_qname(name, prefix)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k__70);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k__71);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":797
  *         name, prefix = self._element_stack.pop()[1:3]
@@ -122429,7 +122600,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  * 
  *         if not self._element_stack:
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__63);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k__64);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":800
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
@@ -123184,7 +123355,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
           __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_3);
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
           __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -123259,7 +123430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
         __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __Pyx_Raise(__pyx_t_5, 0, 0, 0);
@@ -123426,7 +123597,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
       __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -123453,7 +123624,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
       __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
@@ -124038,7 +124209,7 @@ static int __pyx_pw_4lxml_5etree_9iterparse_1__init__(PyObject *__pyx_v_self, Py
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_source,&__pyx_n_s_events,&__pyx_n_s_tag,&__pyx_n_s_attribute_defaults,&__pyx_n_s_dtd_validation,&__pyx_n_s_load_dtd,&__pyx_n_s_no_network,&__pyx_n_s_remove_blank_text,&__pyx_n_s_compact,&__pyx_n_s_resolve_entities,&__pyx_n_s_remove_comments,&__pyx_n_s_remove_pis,&__pyx_n_s_strip_cdata,&__pyx_n_s_encoding,&__pyx_n_s_html,&__pyx_n_s_recover,&__pyx_n_s_huge_tree,&__pyx_n_s_schema,0};
     PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-    values[1] = ((PyObject *)__pyx_tuple__75);
+    values[1] = ((PyObject *)__pyx_tuple__76);
     values[2] = ((PyObject *)Py_None);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":67
@@ -126271,7 +126442,7 @@ static int __pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_obj_4l
  */
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_source, __pyx_n_s_read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_data = __pyx_t_2;
@@ -126306,7 +126477,7 @@ static int __pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_obj_4l
  *         if not data:
  *             try:
  */
-    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -126523,7 +126694,7 @@ static int __pyx_pw_4lxml_5etree_8iterwalk_1__init__(PyObject *__pyx_v_self, PyO
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_element_or_tree,&__pyx_n_s_events,&__pyx_n_s_tag,0};
     PyObject* values[3] = {0,0,0};
-    values[1] = ((PyObject *)__pyx_tuple__78);
+    values[1] = ((PyObject *)__pyx_tuple__79);
     values[2] = ((PyObject *)Py_None);
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
@@ -126630,7 +126801,7 @@ static int __pyx_pf_4lxml_5etree_8iterwalk___init__(struct __pyx_obj_4lxml_5etre
  */
   __pyx_t_3 = (__pyx_v_tag == Py_None);
   if (!__pyx_t_3) {
-    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__34, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_tag, __pyx_kp_s__35, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = __pyx_t_4;
   } else {
     __pyx_t_5 = __pyx_t_3;
@@ -126930,7 +127101,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *             node = self._node_stack[self._index][0]
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->_pop_event, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_self->_pop_event, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -127248,7 +127419,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_self->_pop_event, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_self->_pop_event, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
@@ -127622,8 +127793,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-    __Pyx_INCREF(__pyx_tuple__81);
-    __pyx_v_event = __pyx_tuple__81;
+    __Pyx_INCREF(__pyx_tuple__82);
+    __pyx_v_event = __pyx_tuple__82;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":330
  *         if self._event_filter & PARSE_EVENT_FILTER_END_NS:
@@ -128068,7 +128239,7 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  * 
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
  */
-    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__82, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__83, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_id_attributes);
     __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__find_id_attributes, __pyx_t_3);
@@ -128181,7 +128352,7 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  */
     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_elem, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__83, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__84, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (unlikely(PyDict_SetItem(__pyx_v_dic, __pyx_t_4, __pyx_v_elem) < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -129359,7 +129530,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
  *     def __iter__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_slice__84, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_slice__85, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -129699,7 +129870,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
  *     def iteritems(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_slice__85, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_slice__86, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -137435,7 +137606,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
  */
         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
-        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__86, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__87, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -138658,7 +138829,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__87, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__88, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -138695,7 +138866,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  */
   __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Element); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__88, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__89, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __pyx_v_root = __pyx_t_1;
@@ -140849,6 +141020,7 @@ static void __pyx_f_4lxml_5etree__freeXPathObject(xmlXPathObject *__pyx_v_xpathO
  */
 
 static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xmlNode *__pyx_v_c_node, struct LxmlDocument *__pyx_v_doc, struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_v_context) {
+  struct LxmlDocument *__pyx_v_node_doc = NULL;
   struct LxmlElement *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
@@ -140880,23 +141052,23 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":711
  *         # either => may still be from a known document, e.g. one
  *         # created by an extension function
- *         doc = context._findDocumentForNode(c_node)             # <<<<<<<<<<<<<<
- *         if doc is None:
+ *         node_doc = context._findDocumentForNode(c_node)             # <<<<<<<<<<<<<<
+ *         if node_doc is None:
  *             # not from a known document at all! => can only make a
  */
     __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_12_BaseContext__findDocumentForNode(__pyx_v_context, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
+    __pyx_v_node_doc = ((struct LxmlDocument *)__pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":712
  *         # created by an extension function
- *         doc = context._findDocumentForNode(c_node)
- *         if doc is None:             # <<<<<<<<<<<<<<
+ *         node_doc = context._findDocumentForNode(c_node)
+ *         if node_doc is None:             # <<<<<<<<<<<<<<
  *             # not from a known document at all! => can only make a
  *             # safety copy here
  */
-    __pyx_t_3 = (((PyObject *)__pyx_v_doc) == Py_None);
+    __pyx_t_3 = (((PyObject *)__pyx_v_node_doc) == Py_None);
     __pyx_t_1 = (__pyx_t_3 != 0);
     if (__pyx_t_1) {
 
@@ -140904,26 +141076,38 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
  *             # not from a known document at all! => can only make a
  *             # safety copy here
  *             c_node = tree.xmlDocCopyNode(c_node, doc._c_doc, 1)             # <<<<<<<<<<<<<<
- *     return _fakeDocElementFactory(doc, c_node)
- * 
+ *         else:
+ *             doc = node_doc
  */
       __pyx_v_c_node = xmlDocCopyNode(__pyx_v_c_node, __pyx_v_doc->_c_doc, 1);
       goto __pyx_L4;
     }
+    /*else*/ {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":717
+ *             c_node = tree.xmlDocCopyNode(c_node, doc._c_doc, 1)
+ *         else:
+ *             doc = node_doc             # <<<<<<<<<<<<<<
+ *     return _fakeDocElementFactory(doc, c_node)
+ * 
+ */
+      __Pyx_INCREF(((PyObject *)__pyx_v_node_doc));
+      __Pyx_DECREF_SET(__pyx_v_doc, __pyx_v_node_doc);
+    }
     __pyx_L4:;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":716
- *             # safety copy here
- *             c_node = tree.xmlDocCopyNode(c_node, doc._c_doc, 1)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":718
+ *         else:
+ *             doc = node_doc
  *     return _fakeDocElementFactory(doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__fakeDocElementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__fakeDocElementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_r = ((struct LxmlElement *)__pyx_t_4);
   __pyx_t_4 = 0;
@@ -140943,13 +141127,14 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
   __Pyx_AddTraceback("lxml.etree._instantiateElementFromXPath", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
+  __Pyx_XDECREF((PyObject *)__pyx_v_node_doc);
   __Pyx_XDECREF((PyObject *)__pyx_v_doc);
   __Pyx_XGIVEREF((PyObject *)__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":729
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":731
  *     cdef readonly bint is_attribute
  * 
  *     def getparent(self):             # <<<<<<<<<<<<<<
@@ -140975,7 +141160,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_getparent(struct
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("getparent", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":730
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":732
  * 
  *     def getparent(self):
  *         return self._parent             # <<<<<<<<<<<<<<
@@ -140987,7 +141172,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_getparent(struct
   __pyx_r = ((PyObject *)__pyx_v_self->_parent);
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":729
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":731
  *     cdef readonly bint is_attribute
  * 
  *     def getparent(self):             # <<<<<<<<<<<<<<
@@ -141002,7 +141187,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_getparent(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":724
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":726
  * cdef class _ElementUnicodeResult(unicode):
  *     cdef _Element _parent
  *     cdef readonly object attrname             # <<<<<<<<<<<<<<
@@ -141039,7 +141224,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_8attrname___get__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":725
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":727
  *     cdef _Element _parent
  *     cdef readonly object attrname
  *     cdef readonly bint is_tail             # <<<<<<<<<<<<<<
@@ -141069,7 +141254,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_7is_tail___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_tail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_tail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -141086,7 +141271,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_7is_tail___get__(
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":726
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":728
  *     cdef readonly object attrname
  *     cdef readonly bint is_tail
  *     cdef readonly bint is_text             # <<<<<<<<<<<<<<
@@ -141116,7 +141301,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_7is_text___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -141133,7 +141318,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_7is_text___get__(
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":727
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":729
  *     cdef readonly bint is_tail
  *     cdef readonly bint is_text
  *     cdef readonly bint is_attribute             # <<<<<<<<<<<<<<
@@ -141163,7 +141348,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_12is_attribute___
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_attribute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_attribute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -141180,7 +141365,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementUnicodeResult_12is_attribute___
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":735
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":737
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  *     def getparent(self):             # <<<<<<<<<<<<<<
@@ -141211,7 +141396,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20_ElementStringResult_getparent(CYTHON_U
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getparent", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":736
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":738
  *     # in Pyrex/Cython
  *     def getparent(self):
  *         return self._parent             # <<<<<<<<<<<<<<
@@ -141219,13 +141404,13 @@ static PyObject *__pyx_pf_4lxml_5etree_20_ElementStringResult_getparent(CYTHON_U
  * cdef object _elementStringResultFactory(string_value, _Element parent,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":737
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  *     def getparent(self):             # <<<<<<<<<<<<<<
@@ -141244,7 +141429,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20_ElementStringResult_getparent(CYTHON_U
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":738
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":740
  *         return self._parent
  * 
  * cdef object _elementStringResultFactory(string_value, _Element parent,             # <<<<<<<<<<<<<<
@@ -141269,7 +141454,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_elementStringResultFactory", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":742
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":744
  *     cdef _ElementUnicodeResult uresult
  *     cdef bint is_text
  *     cdef bint is_attribute = attrname is not None             # <<<<<<<<<<<<<<
@@ -141279,7 +141464,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   __pyx_t_1 = (__pyx_v_attrname != Py_None);
   __pyx_v_is_attribute = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":743
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":745
  *     cdef bint is_text
  *     cdef bint is_attribute = attrname is not None
  *     if parent is None:             # <<<<<<<<<<<<<<
@@ -141290,7 +141475,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":744
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":746
  *     cdef bint is_attribute = attrname is not None
  *     if parent is None:
  *         is_text = 0             # <<<<<<<<<<<<<<
@@ -141302,7 +141487,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":746
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":748
  *         is_text = 0
  *     else:
  *         is_text = not (is_tail or is_attribute)             # <<<<<<<<<<<<<<
@@ -141318,7 +141503,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":748
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":750
  *         is_text = not (is_tail or is_attribute)
  * 
  *     if type(string_value) is bytes:             # <<<<<<<<<<<<<<
@@ -141329,82 +141514,82 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":749
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":751
  * 
  *     if type(string_value) is bytes:
  *         result = _ElementStringResult(string_value)             # <<<<<<<<<<<<<<
  *         result._parent = parent
  *         result.is_attribute = is_attribute
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ElementStringResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ElementStringResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_string_value);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_string_value);
     __Pyx_GIVEREF(__pyx_v_string_value);
-    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_v_result = __pyx_t_5;
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":750
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":752
  *     if type(string_value) is bytes:
  *         result = _ElementStringResult(string_value)
  *         result._parent = parent             # <<<<<<<<<<<<<<
  *         result.is_attribute = is_attribute
  *         result.is_tail = is_tail
  */
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_parent, ((PyObject *)__pyx_v_parent)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_parent, ((PyObject *)__pyx_v_parent)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":751
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":753
  *         result = _ElementStringResult(string_value)
  *         result._parent = parent
  *         result.is_attribute = is_attribute             # <<<<<<<<<<<<<<
  *         result.is_tail = is_tail
  *         result.is_text = is_text
  */
-    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_attribute, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_attribute, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":752
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":754
  *         result._parent = parent
  *         result.is_attribute = is_attribute
  *         result.is_tail = is_tail             # <<<<<<<<<<<<<<
  *         result.is_text = is_text
  *         result.attrname = attrname
  */
-    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_tail, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_tail, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":753
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":755
  *         result.is_attribute = is_attribute
  *         result.is_tail = is_tail
  *         result.is_text = is_text             # <<<<<<<<<<<<<<
  *         result.attrname = attrname
  *         return result
  */
-    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_is_text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":754
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":756
  *         result.is_tail = is_tail
  *         result.is_text = is_text
  *         result.attrname = attrname             # <<<<<<<<<<<<<<
  *         return result
  *     else:
  */
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_attrname, __pyx_v_attrname) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_attrname, __pyx_v_attrname) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":755
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":757
  *         result.is_text = is_text
  *         result.attrname = attrname
  *         return result             # <<<<<<<<<<<<<<
@@ -141418,25 +141603,25 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":757
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":759
  *         return result
  *     else:
  *         uresult = _ElementUnicodeResult(string_value)             # <<<<<<<<<<<<<<
  *         uresult._parent = parent
  *         uresult.is_attribute = is_attribute
  */
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_string_value);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_string_value);
     __Pyx_GIVEREF(__pyx_v_string_value);
-    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementUnicodeResult)), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementUnicodeResult)), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_v_uresult = ((struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":758
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":760
  *     else:
  *         uresult = _ElementUnicodeResult(string_value)
  *         uresult._parent = parent             # <<<<<<<<<<<<<<
@@ -141449,7 +141634,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
     __Pyx_DECREF(((PyObject *)__pyx_v_uresult->_parent));
     __pyx_v_uresult->_parent = __pyx_v_parent;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":761
  *         uresult = _ElementUnicodeResult(string_value)
  *         uresult._parent = parent
  *         uresult.is_attribute = is_attribute             # <<<<<<<<<<<<<<
@@ -141458,7 +141643,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  */
     __pyx_v_uresult->is_attribute = __pyx_v_is_attribute;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":760
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":762
  *         uresult._parent = parent
  *         uresult.is_attribute = is_attribute
  *         uresult.is_tail = is_tail             # <<<<<<<<<<<<<<
@@ -141467,7 +141652,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  */
     __pyx_v_uresult->is_tail = __pyx_v_is_tail;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":761
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":763
  *         uresult.is_attribute = is_attribute
  *         uresult.is_tail = is_tail
  *         uresult.is_text = is_text             # <<<<<<<<<<<<<<
@@ -141476,7 +141661,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  */
     __pyx_v_uresult->is_text = __pyx_v_is_text;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":762
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":764
  *         uresult.is_tail = is_tail
  *         uresult.is_text = is_text
  *         uresult.attrname = attrname             # <<<<<<<<<<<<<<
@@ -141489,7 +141674,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
     __Pyx_DECREF(__pyx_v_uresult->attrname);
     __pyx_v_uresult->attrname = __pyx_v_attrname;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":763
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":765
  *         uresult.is_text = is_text
  *         uresult.attrname = attrname
  *         return uresult             # <<<<<<<<<<<<<<
@@ -141502,7 +141687,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":738
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":740
  *         return self._parent
  * 
  * cdef object _elementStringResultFactory(string_value, _Element parent,             # <<<<<<<<<<<<<<
@@ -141525,7 +141710,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":765
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":767
  *         return uresult
  * 
  * cdef object _buildElementStringResult(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -141561,7 +141746,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_buildElementStringResult", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":767
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":769
  * cdef object _buildElementStringResult(_Document doc, xmlNode* c_node,
  *                                       _BaseContext context):
  *     cdef _Element parent = None             # <<<<<<<<<<<<<<
@@ -141571,7 +141756,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __Pyx_INCREF(Py_None);
   __pyx_v_parent = ((struct LxmlElement *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":768
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":770
  *                                       _BaseContext context):
  *     cdef _Element parent = None
  *     cdef object attrname = None             # <<<<<<<<<<<<<<
@@ -141581,7 +141766,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __Pyx_INCREF(Py_None);
   __pyx_v_attrname = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":772
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":774
  *     cdef bint is_tail
  * 
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -141591,19 +141776,19 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __pyx_t_1 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":773
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":775
  * 
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         attrname = _namespacedName(c_node)             # <<<<<<<<<<<<<<
  *         is_tail = 0
  *         s = tree.xmlNodeGetContent(c_node)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF_SET(__pyx_v_attrname, __pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":774
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":776
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         attrname = _namespacedName(c_node)
  *         is_tail = 0             # <<<<<<<<<<<<<<
@@ -141612,7 +141797,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     __pyx_v_is_tail = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":775
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":777
  *         attrname = _namespacedName(c_node)
  *         is_tail = 0
  *         s = tree.xmlNodeGetContent(c_node)             # <<<<<<<<<<<<<<
@@ -141621,7 +141806,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     __pyx_v_s = xmlNodeGetContent(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":776
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":778
  *         is_tail = 0
  *         s = tree.xmlNodeGetContent(c_node)
  *         try:             # <<<<<<<<<<<<<<
@@ -141630,20 +141815,20 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":777
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":779
  *         s = tree.xmlNodeGetContent(c_node)
  *         try:
  *             value = funicode(s)             # <<<<<<<<<<<<<<
  *         finally:
  *             tree.xmlFree(s)
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_v_value = __pyx_t_2;
       __pyx_t_2 = 0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":779
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":781
  *             value = funicode(s)
  *         finally:
  *             tree.xmlFree(s)             # <<<<<<<<<<<<<<
@@ -141688,7 +141873,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
       __pyx_L6:;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":780
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":782
  *         finally:
  *             tree.xmlFree(s)
  *         c_element = NULL             # <<<<<<<<<<<<<<
@@ -141700,19 +141885,19 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":784
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":786
  *         #assert c_node.type == tree.XML_TEXT_NODE or c_node.type == tree.XML_CDATA_SECTION_NODE, "invalid node type"
  *         # may be tail text or normal text
  *         value = funicode(c_node.content)             # <<<<<<<<<<<<<<
  *         c_element = _previousElement(c_node)
  *         is_tail = c_element is not NULL
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->content); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->content); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_value = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":785
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":787
  *         # may be tail text or normal text
  *         value = funicode(c_node.content)
  *         c_element = _previousElement(c_node)             # <<<<<<<<<<<<<<
@@ -141721,7 +141906,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     __pyx_v_c_element = __pyx_f_4lxml_5etree__previousElement(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":786
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":788
  *         value = funicode(c_node.content)
  *         c_element = _previousElement(c_node)
  *         is_tail = c_element is not NULL             # <<<<<<<<<<<<<<
@@ -141732,7 +141917,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":790
  *         is_tail = c_element is not NULL
  * 
  *     if not context._build_smart_strings:             # <<<<<<<<<<<<<<
@@ -141742,7 +141927,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __pyx_t_1 = ((!(__pyx_v_context->_build_smart_strings != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":789
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":791
  * 
  *     if not context._build_smart_strings:
  *         return value             # <<<<<<<<<<<<<<
@@ -141755,7 +141940,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
     goto __pyx_L0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":791
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":793
  *         return value
  * 
  *     if c_element is NULL:             # <<<<<<<<<<<<<<
@@ -141765,7 +141950,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __pyx_t_1 = ((__pyx_v_c_element == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":793
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":795
  *     if c_element is NULL:
  *         # non-tail text or attribute text
  *         c_element = c_node.parent             # <<<<<<<<<<<<<<
@@ -141775,7 +141960,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
     __pyx_t_12 = __pyx_v_c_node->parent;
     __pyx_v_c_element = __pyx_t_12;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":794
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":796
  *         # non-tail text or attribute text
  *         c_element = c_node.parent
  *         while c_element is not NULL and not _isElement(c_element):             # <<<<<<<<<<<<<<
@@ -141792,7 +141977,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
       }
       if (!__pyx_t_14) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":795
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":797
  *         c_element = c_node.parent
  *         while c_element is not NULL and not _isElement(c_element):
  *             c_element = c_element.parent             # <<<<<<<<<<<<<<
@@ -141806,7 +141991,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":797
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":799
  *             c_element = c_element.parent
  * 
  *     if c_element is not NULL:             # <<<<<<<<<<<<<<
@@ -141816,14 +142001,14 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   __pyx_t_14 = ((__pyx_v_c_element != NULL) != 0);
   if (__pyx_t_14) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":798
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":800
  * 
  *     if c_element is not NULL:
  *         parent = _instantiateElementFromXPath(c_element, doc, context)             # <<<<<<<<<<<<<<
  * 
  *     return _elementStringResultFactory(
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__instantiateElementFromXPath(__pyx_v_c_element, __pyx_v_doc, __pyx_v_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__instantiateElementFromXPath(__pyx_v_c_element, __pyx_v_doc, __pyx_v_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF_SET(__pyx_v_parent, ((struct LxmlElement *)__pyx_t_2));
     __pyx_t_2 = 0;
@@ -141831,7 +142016,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   }
   __pyx_L13:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":800
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":802
  *         parent = _instantiateElementFromXPath(c_element, doc, context)
  * 
  *     return _elementStringResultFactory(             # <<<<<<<<<<<<<<
@@ -141840,20 +142025,20 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
   __Pyx_XDECREF(__pyx_r);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":801
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":803
  * 
  *     return _elementStringResultFactory(
  *         value, parent, attrname, is_tail)             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__elementStringResultFactory(__pyx_v_value, __pyx_v_parent, __pyx_v_attrname, __pyx_v_is_tail); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__elementStringResultFactory(__pyx_v_value, __pyx_v_parent, __pyx_v_attrname, __pyx_v_is_tail); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
   goto __pyx_L0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":765
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":767
  *         return uresult
  * 
  * cdef object _buildElementStringResult(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -141875,7 +142060,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":806
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":808
  * # callbacks for XPath/XSLT extension functions
  * 
  * cdef void _extension_function_call(_BaseContext context, function,             # <<<<<<<<<<<<<<
@@ -141909,7 +142094,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_extension_function_call", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":812
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":814
  *     cdef list args
  *     cdef int i
  *     doc = context._doc             # <<<<<<<<<<<<<<
@@ -141921,7 +142106,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":813
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":815
  *     cdef int i
  *     doc = context._doc
  *     try:             # <<<<<<<<<<<<<<
@@ -141936,19 +142121,19 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
       __Pyx_XGOTREF(__pyx_t_4);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":814
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":816
  *     doc = context._doc
  *     try:
  *         args = []             # <<<<<<<<<<<<<<
  *         for i in range(nargs):
  *             obj = xpath.valuePop(ctxt)
  */
-        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_1);
         __pyx_v_args = ((PyObject*)__pyx_t_1);
         __pyx_t_1 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":815
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":817
  *     try:
  *         args = []
  *         for i in range(nargs):             # <<<<<<<<<<<<<<
@@ -141959,7 +142144,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
         for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
           __pyx_v_i = __pyx_t_6;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":816
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":818
  *         args = []
  *         for i in range(nargs):
  *             obj = xpath.valuePop(ctxt)             # <<<<<<<<<<<<<<
@@ -141968,19 +142153,19 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
  */
           __pyx_v_obj = valuePop(__pyx_v_ctxt);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":817
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":819
  *         for i in range(nargs):
  *             obj = xpath.valuePop(ctxt)
  *             o = _unwrapXPathObject(obj, doc, context)             # <<<<<<<<<<<<<<
  *             _freeXPathObject(obj)
  *             args.append(o)
  */
-          __pyx_t_1 = __pyx_f_4lxml_5etree__unwrapXPathObject(__pyx_v_obj, __pyx_v_doc, __pyx_v_context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_1 = __pyx_f_4lxml_5etree__unwrapXPathObject(__pyx_v_obj, __pyx_v_doc, __pyx_v_context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_XDECREF_SET(__pyx_v_o, __pyx_t_1);
           __pyx_t_1 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":818
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":820
  *             obj = xpath.valuePop(ctxt)
  *             o = _unwrapXPathObject(obj, doc, context)
  *             _freeXPathObject(obj)             # <<<<<<<<<<<<<<
@@ -141989,71 +142174,71 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
  */
           __pyx_f_4lxml_5etree__freeXPathObject(__pyx_v_obj);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":819
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":821
  *             o = _unwrapXPathObject(obj, doc, context)
  *             _freeXPathObject(obj)
  *             args.append(o)             # <<<<<<<<<<<<<<
  *         args.reverse()
  * 
  */
-          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_o); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_o); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":820
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":822
  *             _freeXPathObject(obj)
  *             args.append(o)
  *         args.reverse()             # <<<<<<<<<<<<<<
  * 
  *         res = function(context, *args)
  */
-        __pyx_t_7 = PyList_Reverse(__pyx_v_args); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_7 = PyList_Reverse(__pyx_v_args); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":822
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":824
  *         args.reverse()
  * 
  *         res = function(context, *args)             # <<<<<<<<<<<<<<
  *         # wrap result for XPath consumption
  *         obj = _wrapXPathObject(res, doc, context)
  */
-        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_1);
         __Pyx_INCREF(((PyObject *)__pyx_v_context));
         PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_context));
         __Pyx_GIVEREF(((PyObject *)__pyx_v_context));
-        __pyx_t_8 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_8 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_v_res = __pyx_t_8;
         __pyx_t_8 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":824
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":826
  *         res = function(context, *args)
  *         # wrap result for XPath consumption
  *         obj = _wrapXPathObject(res, doc, context)             # <<<<<<<<<<<<<<
  *         # prevent Python from deallocating elements handed to libxml2
  *         context._hold(res)
  */
-        __pyx_t_10 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_res, __pyx_v_doc, __pyx_v_context); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_10 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_res, __pyx_v_doc, __pyx_v_context); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __pyx_v_obj = __pyx_t_10;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":826
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":828
  *         obj = _wrapXPathObject(res, doc, context)
  *         # prevent Python from deallocating elements handed to libxml2
  *         context._hold(res)             # <<<<<<<<<<<<<<
  *         xpath.valuePush(ctxt, obj)
  *     except:
  */
-        __pyx_t_8 = __pyx_f_4lxml_5etree_12_BaseContext__hold(__pyx_v_context, __pyx_v_res); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_8 = __pyx_f_4lxml_5etree_12_BaseContext__hold(__pyx_v_context, __pyx_v_res); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":827
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":829
  *         # prevent Python from deallocating elements handed to libxml2
  *         context._hold(res)
  *         xpath.valuePush(ctxt, obj)             # <<<<<<<<<<<<<<
@@ -142071,7 +142256,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":828
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":830
  *         context._hold(res)
  *         xpath.valuePush(ctxt, obj)
  *     except:             # <<<<<<<<<<<<<<
@@ -142080,12 +142265,12 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
  */
       /*except:*/ {
         __Pyx_AddTraceback("lxml.etree._extension_function_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_GOTREF(__pyx_t_1);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":829
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":831
  *         xpath.valuePush(ctxt, obj)
  *     except:
  *         xpath.xmlXPathErr(ctxt, xpath.XPATH_EXPR_ERROR)             # <<<<<<<<<<<<<<
@@ -142094,7 +142279,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
  */
         xmlXPathErr(__pyx_v_ctxt, XPATH_EXPR_ERROR);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":830
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":832
  *     except:
  *         xpath.xmlXPathErr(ctxt, xpath.XPATH_EXPR_ERROR)
  *         context._exc._store_raised()             # <<<<<<<<<<<<<<
@@ -142122,7 +142307,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":832
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":834
  *         context._exc._store_raised()
  *     finally:
  *         return  # swallow any further exceptions             # <<<<<<<<<<<<<<
@@ -142165,7 +142350,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":806
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":808
  * # callbacks for XPath/XSLT extension functions
  * 
  * cdef void _extension_function_call(_BaseContext context, function,             # <<<<<<<<<<<<<<
@@ -142182,7 +142367,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":836
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":838
  * # lookup the function by name and call it
  * 
  * cdef void _xpath_function_call(xpath.xmlXPathParserContext* ctxt,             # <<<<<<<<<<<<<<
@@ -142215,7 +142400,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
   #endif
   __Pyx_RefNannySetupContext("_xpath_function_call", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":839
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":841
  *                                int nargs) with gil:
  *     cdef _BaseContext context
  *     cdef xpath.xmlXPathContext* rctxt = ctxt.context             # <<<<<<<<<<<<<<
@@ -142225,7 +142410,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
   __pyx_t_1 = __pyx_v_ctxt->context;
   __pyx_v_rctxt = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":840
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":842
  *     cdef _BaseContext context
  *     cdef xpath.xmlXPathContext* rctxt = ctxt.context
  *     context = <_BaseContext> rctxt.userData             # <<<<<<<<<<<<<<
@@ -142237,7 +142422,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":841
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":843
  *     cdef xpath.xmlXPathContext* rctxt = ctxt.context
  *     context = <_BaseContext> rctxt.userData
  *     try:             # <<<<<<<<<<<<<<
@@ -142252,19 +142437,19 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
       __Pyx_XGOTREF(__pyx_t_5);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":842
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":844
  *     context = <_BaseContext> rctxt.userData
  *     try:
  *         function = context._find_cached_function(rctxt.functionURI, rctxt.function)             # <<<<<<<<<<<<<<
  *         if function is not None:
  *             _extension_function_call(context, function, ctxt, nargs)
  */
-        __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__find_cached_function(__pyx_v_context, __pyx_v_rctxt->functionURI, __pyx_v_rctxt->function); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+        __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__find_cached_function(__pyx_v_context, __pyx_v_rctxt->functionURI, __pyx_v_rctxt->function); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
         __Pyx_GOTREF(__pyx_t_2);
         __pyx_v_function = __pyx_t_2;
         __pyx_t_2 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":843
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":845
  *     try:
  *         function = context._find_cached_function(rctxt.functionURI, rctxt.function)
  *         if function is not None:             # <<<<<<<<<<<<<<
@@ -142275,7 +142460,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
         __pyx_t_7 = (__pyx_t_6 != 0);
         if (__pyx_t_7) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":844
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":846
  *         function = context._find_cached_function(rctxt.functionURI, rctxt.function)
  *         if function is not None:
  *             _extension_function_call(context, function, ctxt, nargs)             # <<<<<<<<<<<<<<
@@ -142287,7 +142472,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":846
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":848
  *             _extension_function_call(context, function, ctxt, nargs)
  *         else:
  *             xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)             # <<<<<<<<<<<<<<
@@ -142296,47 +142481,47 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  */
           xmlXPathErr(__pyx_v_ctxt, XPATH_UNKNOWN_FUNC_ERROR);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":848
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":850
  *             xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)
  *             context._exc._store_exception(
  *                 XPathFunctionError(u"XPath function '%s' not found" %             # <<<<<<<<<<<<<<
  *                 _namespacedNameFromNsName(rctxt.functionURI, rctxt.function)))
  *     except:
  */
-          __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_XPathFunctionError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_XPathFunctionError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_2);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":849
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":851
  *             context._exc._store_exception(
  *                 XPathFunctionError(u"XPath function '%s' not found" %
  *                 _namespacedNameFromNsName(rctxt.functionURI, rctxt.function)))             # <<<<<<<<<<<<<<
  *     except:
  *         # may not be the right error, but we need to tell libxml2 *something*
  */
-          __pyx_t_8 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_rctxt->functionURI, __pyx_v_rctxt->function); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_8 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_rctxt->functionURI, __pyx_v_rctxt->function); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_8);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":848
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":850
  *             xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)
  *             context._exc._store_exception(
  *                 XPathFunctionError(u"XPath function '%s' not found" %             # <<<<<<<<<<<<<<
  *                 _namespacedNameFromNsName(rctxt.functionURI, rctxt.function)))
  *     except:
  */
-          __pyx_t_9 = PyUnicode_Format(__pyx_kp_u_XPath_function_s_not_found, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_9 = PyUnicode_Format(__pyx_kp_u_XPath_function_s_not_found, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_9);
           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_8);
           PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
           __Pyx_GIVEREF(__pyx_t_9);
           __pyx_t_9 = 0;
-          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
+          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
           __Pyx_GOTREF(__pyx_t_9);
           __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":847
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":849
  *         else:
  *             xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)
  *             context._exc._store_exception(             # <<<<<<<<<<<<<<
@@ -142357,7 +142542,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":850
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":852
  *                 XPathFunctionError(u"XPath function '%s' not found" %
  *                 _namespacedNameFromNsName(rctxt.functionURI, rctxt.function)))
  *     except:             # <<<<<<<<<<<<<<
@@ -142366,12 +142551,12 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  */
       /*except:*/ {
         __Pyx_AddTraceback("lxml.etree._xpath_function_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
+        if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_GOTREF(__pyx_t_2);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":852
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":854
  *     except:
  *         # may not be the right error, but we need to tell libxml2 *something*
  *         xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)             # <<<<<<<<<<<<<<
@@ -142380,7 +142565,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  */
         xmlXPathErr(__pyx_v_ctxt, XPATH_UNKNOWN_FUNC_ERROR);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":853
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":855
  *         # may not be the right error, but we need to tell libxml2 *something*
  *         xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)
  *         context._exc._store_raised()             # <<<<<<<<<<<<<<
@@ -142408,7 +142593,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":855
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":857
  *         context._exc._store_raised()
  *     finally:
  *         return  # swallow any further exceptions             # <<<<<<<<<<<<<<
@@ -142449,7 +142634,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":836
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":838
  * # lookup the function by name and call it
  * 
  * cdef void _xpath_function_call(xpath.xmlXPathParserContext* ctxt,             # <<<<<<<<<<<<<<
@@ -143762,7 +143947,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  */
     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__89, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__90, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -148359,7 +148544,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  */
-      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_slice__90, 1, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_slice__91, 1, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_XDECREF_SET(__pyx_v_namespace, __pyx_t_1);
       __pyx_t_1 = 0;
@@ -148403,7 +148588,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 # FIXME: this also replaces {namespaces} within strings!
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
  */
-      __pyx_t_1 = PyNumber_Add(__pyx_v_prefix, __pyx_kp_b__60); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_Add(__pyx_v_prefix, __pyx_kp_b__61); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_XDECREF_SET(__pyx_v_prefix_str, ((PyObject*)__pyx_t_1));
       __pyx_t_1 = 0;
@@ -148445,7 +148630,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s_decode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__91, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__92, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_9);
@@ -150424,7 +150609,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   }
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__92, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__93, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
@@ -151850,7 +152035,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     /*finally:*/ {
       /*normal exit:*/{
         if (__pyx_t_6) {
-          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__93, NULL);
+          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__94, NULL);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
@@ -152475,7 +152660,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_8set_global_max_depth(int __pyx_v_m
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__94, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__95, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -156445,7 +156630,7 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__95, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__96, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
@@ -157184,9 +157369,9 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *             raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
  *         else:
  */
-  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__53, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_kp_u__54, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_2 != 0)) {
-    __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_kp_u__63, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_kp_u__64, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = (__pyx_t_1 != 0);
   } else {
     __pyx_t_3 = (__pyx_t_2 != 0);
@@ -159290,7 +159475,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
                 __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_encode); if (unlikely(!__pyx_t_25)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
                 __Pyx_GOTREF(__pyx_t_25);
                 __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
-                __pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_tuple__96, NULL); if (unlikely(!__pyx_t_24)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
+                __pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_tuple__97, NULL); if (unlikely(!__pyx_t_24)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
                 __Pyx_GOTREF(__pyx_t_24);
                 __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
                 __Pyx_DECREF_SET(__pyx_v_e, __pyx_t_24);
@@ -163912,7 +164097,7 @@ static int __pyx_pf_4lxml_5etree_3DTD___init__(struct __pyx_obj_4lxml_5etree_DTD
         /*finally:*/ {
           /*normal exit:*/{
             if (__pyx_t_6) {
-              __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__97, NULL);
+              __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__98, NULL);
               __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
               if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
               __Pyx_GOTREF(__pyx_t_10);
@@ -164075,7 +164260,7 @@ static int __pyx_pf_4lxml_5etree_3DTD___init__(struct __pyx_obj_4lxml_5etree_DTD
       /*finally:*/ {
         /*normal exit:*/{
           if (__pyx_t_6) {
-            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__98, NULL);
+            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__99, NULL);
             __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
             if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_8);
@@ -165225,7 +165410,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_14__call__(struct __pyx_obj_4lxml_5e
  */
     __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DTDError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__99, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__100, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -165369,7 +165554,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_14__call__(struct __pyx_obj_4lxml_5e
       /*finally:*/ {
         /*normal exit:*/{
           if (__pyx_t_4) {
-            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__100, NULL);
+            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__101, NULL);
             __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
             if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
             __Pyx_GOTREF(__pyx_t_8);
@@ -165640,7 +165825,7 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
     /*finally:*/ {
       /*normal exit:*/{
         if (__pyx_t_3) {
-          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__101, NULL);
+          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__102, NULL);
           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
           if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_7);
@@ -166729,7 +166914,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
         /*finally:*/ {
           /*normal exit:*/{
             if (__pyx_t_9) {
-              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__102, NULL);
+              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__103, NULL);
               __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
               if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
               __Pyx_GOTREF(__pyx_t_13);
@@ -169741,7 +169926,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
       /*finally:*/ {
         /*normal exit:*/{
           if (__pyx_t_7) {
-            __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__103, NULL);
+            __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__104, NULL);
             __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
             if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_11);
@@ -169874,7 +170059,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
       /*finally:*/ {
         /*normal exit:*/{
           if (__pyx_t_7) {
-            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__104, NULL);
+            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__105, NULL);
             __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
             if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
             __Pyx_GOTREF(__pyx_t_9);
@@ -170569,7 +170754,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
         /*finally:*/ {
           /*normal exit:*/{
             if (__pyx_t_6) {
-              __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__105, NULL);
+              __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__106, NULL);
               __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
               if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
               __Pyx_GOTREF(__pyx_t_10);
@@ -187576,28 +187761,28 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_b__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 0, 0},
   {&__pyx_kp_s__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 1, 0},
   {&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
-  {&__pyx_kp_b__201, __pyx_k__201, sizeof(__pyx_k__201), 0, 0, 0, 0},
-  {&__pyx_kp_b__203, __pyx_k__203, sizeof(__pyx_k__203), 0, 0, 0, 0},
-  {&__pyx_kp_s__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 0, 1, 0},
-  {&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
-  {&__pyx_kp_b__24, __pyx_k__24, sizeof(__pyx_k__24), 0, 0, 0, 0},
-  {&__pyx_kp_u__24, __pyx_k__24, sizeof(__pyx_k__24), 0, 1, 0, 0},
+  {&__pyx_kp_b__202, __pyx_k__202, sizeof(__pyx_k__202), 0, 0, 0, 0},
+  {&__pyx_kp_b__204, __pyx_k__204, sizeof(__pyx_k__204), 0, 0, 0, 0},
+  {&__pyx_kp_s__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 0, 1, 0},
+  {&__pyx_kp_u__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 1, 0, 0},
   {&__pyx_kp_b__25, __pyx_k__25, sizeof(__pyx_k__25), 0, 0, 0, 0},
   {&__pyx_kp_u__25, __pyx_k__25, sizeof(__pyx_k__25), 0, 1, 0, 0},
+  {&__pyx_kp_b__26, __pyx_k__26, sizeof(__pyx_k__26), 0, 0, 0, 0},
+  {&__pyx_kp_u__26, __pyx_k__26, sizeof(__pyx_k__26), 0, 1, 0, 0},
   {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
-  {&__pyx_kp_s__30, __pyx_k__30, sizeof(__pyx_k__30), 0, 0, 1, 0},
-  {&__pyx_kp_b__34, __pyx_k__34, sizeof(__pyx_k__34), 0, 0, 0, 0},
-  {&__pyx_kp_s__34, __pyx_k__34, sizeof(__pyx_k__34), 0, 0, 1, 0},
+  {&__pyx_kp_s__31, __pyx_k__31, sizeof(__pyx_k__31), 0, 0, 1, 0},
+  {&__pyx_kp_b__35, __pyx_k__35, sizeof(__pyx_k__35), 0, 0, 0, 0},
   {&__pyx_kp_s__35, __pyx_k__35, sizeof(__pyx_k__35), 0, 0, 1, 0},
+  {&__pyx_kp_s__36, __pyx_k__36, sizeof(__pyx_k__36), 0, 0, 1, 0},
   {&__pyx_kp_b__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 0, 0},
   {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0},
   {&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0},
-  {&__pyx_n_s__46, __pyx_k__46, sizeof(__pyx_k__46), 0, 0, 1, 1},
-  {&__pyx_n_u__46, __pyx_k__46, sizeof(__pyx_k__46), 0, 1, 0, 1},
-  {&__pyx_kp_u__53, __pyx_k__53, sizeof(__pyx_k__53), 0, 1, 0, 0},
-  {&__pyx_kp_b__60, __pyx_k__60, sizeof(__pyx_k__60), 0, 0, 0, 0},
-  {&__pyx_kp_u__63, __pyx_k__63, sizeof(__pyx_k__63), 0, 1, 0, 0},
-  {&__pyx_kp_u__92, __pyx_k__92, sizeof(__pyx_k__92), 0, 1, 0, 0},
+  {&__pyx_n_s__47, __pyx_k__47, sizeof(__pyx_k__47), 0, 0, 1, 1},
+  {&__pyx_n_u__47, __pyx_k__47, sizeof(__pyx_k__47), 0, 1, 0, 1},
+  {&__pyx_kp_u__54, __pyx_k__54, sizeof(__pyx_k__54), 0, 1, 0, 0},
+  {&__pyx_kp_b__61, __pyx_k__61, sizeof(__pyx_k__61), 0, 0, 0, 0},
+  {&__pyx_kp_u__64, __pyx_k__64, sizeof(__pyx_k__64), 0, 1, 0, 0},
+  {&__pyx_kp_u__93, __pyx_k__93, sizeof(__pyx_k__93), 0, 1, 0, 0},
   {&__pyx_n_s_abspath, __pyx_k_abspath, sizeof(__pyx_k_abspath), 0, 0, 1, 1},
   {&__pyx_n_s_accepted_domains, __pyx_k_accepted_domains, sizeof(__pyx_k_accepted_domains), 0, 0, 1, 1},
   {&__pyx_n_s_access_control, __pyx_k_access_control, sizeof(__pyx_k_access_control), 0, 0, 1, 1},
@@ -187635,6 +187820,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s_c_ns_tags, __pyx_k_c_ns_tags, sizeof(__pyx_k_c_ns_tags), 0, 0, 1, 1},
   {&__pyx_n_s_c_tag_count, __pyx_k_c_tag_count, sizeof(__pyx_k_c_tag_count), 0, 0, 1, 1},
   {&__pyx_kp_u_can_only_parse_strings, __pyx_k_can_only_parse_strings, sizeof(__pyx_k_can_only_parse_strings), 0, 1, 0, 0},
+  {&__pyx_kp_s_cannot_add_ancestor_as_sibling_p, __pyx_k_cannot_add_ancestor_as_sibling_p, sizeof(__pyx_k_cannot_add_ancestor_as_sibling_p), 0, 0, 1, 0},
   {&__pyx_kp_u_cannot_append_document_already_h, __pyx_k_cannot_append_document_already_h, sizeof(__pyx_k_cannot_append_document_already_h), 0, 1, 0, 0},
   {&__pyx_kp_s_cannot_append_parent_to_itself, __pyx_k_cannot_append_parent_to_itself, sizeof(__pyx_k_cannot_append_parent_to_itself), 0, 0, 1, 0},
   {&__pyx_kp_s_cannot_append_trailing_element_t, __pyx_k_cannot_append_trailing_element_t, sizeof(__pyx_k_cannot_append_trailing_element_t), 0, 0, 1, 0},
@@ -188174,18 +188360,18 @@ static int __Pyx_InitCachedBuiltins(void) {
   __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if PY_MAJOR_VERSION >= 3
-  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #else
-  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #endif
-  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s_FutureWarning); if (!__pyx_builtin_FutureWarning) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -188308,60 +188494,71 @@ static int __Pyx_InitCachedConstants(void) {
   __Pyx_GOTREF(__pyx_slice__13);
   __Pyx_GIVEREF(__pyx_slice__13);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1249
- *     while c_parent:
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
- *         c_parent = c_parent.parent
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1254
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, parent._c_node):
+ *         raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
  *     # store possible text node
+ *     c_next = c_node.next
  */
-  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__16)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__16)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_tuple__16);
   __Pyx_GIVEREF(__pyx_tuple__16);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1271
- *     while c_parent:
- *         if c_parent is c_node:
- *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
- *         c_parent = c_parent.parent
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1273
+ *     # prevent cycles
+ *     if _isAncestorOrSame(c_node, parent._c_node):
+ *         raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
  *     # store possible text node
+ *     c_next = c_node.next
  */
-  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__17)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__17)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_tuple__17);
   __Pyx_GIVEREF(__pyx_tuple__17);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1395
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1306
+ *         if element._c_node is c_node:
+ *             return 0  # nothing to do
+ *         raise ValueError("cannot add ancestor as sibling, please break cycle first")             # <<<<<<<<<<<<<<
+ *     # store possible text node
+ *     c_next = c_node.next
+ */
+  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_cannot_add_ancestor_as_sibling_p); if (unlikely(!__pyx_tuple__18)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__18);
+  __Pyx_GIVEREF(__pyx_tuple__18);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:
  *         raise ValueError(             # <<<<<<<<<<<<<<
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string
  */
-  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__18)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__18);
-  __Pyx_GIVEREF(__pyx_tuple__18);
+  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__19)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__19);
+  __Pyx_GIVEREF(__pyx_tuple__19);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1443
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1441
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__19)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__19);
-  __Pyx_GIVEREF(__pyx_tuple__19);
+  __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__20)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__20);
+  __Pyx_GIVEREF(__pyx_tuple__20);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1492
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
  *         return (<unicode>filename).encode('utf8')
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef tuple _getNsTag(tag):
  */
-  __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__20)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__20);
-  __Pyx_GIVEREF(__pyx_tuple__20);
+  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__21)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__21);
+  __Pyx_GIVEREF(__pyx_tuple__21);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":557
  *     except KeyError:
@@ -188370,9 +188567,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return log
  * 
  */
-  __pyx_tuple__22 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__22)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__22);
-  __Pyx_GIVEREF(__pyx_tuple__22);
+  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__23)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__23);
+  __Pyx_GIVEREF(__pyx_tuple__23);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":697
  *     u"Called at setup time to parse the constants and build the classes below."
@@ -188381,9 +188578,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     const_defs = ((ErrorLevels,          __ERROR_LEVELS),
  *                   (ErrorDomains,         __ERROR_DOMAINS),
  */
-  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_s_a_zA_Z0_9__s_s_0_9); if (unlikely(!__pyx_tuple__23)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__23);
-  __Pyx_GIVEREF(__pyx_tuple__23);
+  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_u_s_a_zA_Z0_9__s_s_0_9); if (unlikely(!__pyx_tuple__24)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__24);
+  __Pyx_GIVEREF(__pyx_tuple__24);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1918
  *         if method == 'c14n':
@@ -188392,9 +188589,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  */
-  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__26);
-  __Pyx_GIVEREF(__pyx_tuple__26);
+  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__27);
+  __Pyx_GIVEREF(__pyx_tuple__27);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1920
  *                 raise ValueError("Cannot specify encoding with C14N")
@@ -188403,9 +188600,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  */
-  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__27);
-  __Pyx_GIVEREF(__pyx_tuple__27);
+  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__28);
+  __Pyx_GIVEREF(__pyx_tuple__28);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1926
  *             return
@@ -188414,9 +188611,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:
  */
-  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__28);
-  __Pyx_GIVEREF(__pyx_tuple__28);
+  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__29)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__29);
+  __Pyx_GIVEREF(__pyx_tuple__29);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2037
  *         root = self.getroot()
@@ -188425,9 +188622,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 path = "." + path
  *         return root.find(path, namespaces)
  */
-  __pyx_slice__29 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__29)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__29);
-  __Pyx_GIVEREF(__pyx_slice__29);
+  __pyx_slice__30 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__30);
+  __Pyx_GIVEREF(__pyx_slice__30);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2054
  *         root = self.getroot()
@@ -188436,9 +188633,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 path = "." + path
  *         return root.findtext(path, default, namespaces)
  */
-  __pyx_slice__31 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__31);
-  __Pyx_GIVEREF(__pyx_slice__31);
+  __pyx_slice__32 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__32);
+  __Pyx_GIVEREF(__pyx_slice__32);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2071
  *         root = self.getroot()
@@ -188447,9 +188644,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 path = "." + path
  *         return root.findall(path, namespaces)
  */
-  __pyx_slice__32 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__32);
-  __Pyx_GIVEREF(__pyx_slice__32);
+  __pyx_slice__33 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__33)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__33);
+  __Pyx_GIVEREF(__pyx_slice__33);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2088
  *         root = self.getroot()
@@ -188458,9 +188655,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 path = "." + path
  *         return root.iterfind(path, namespaces)
  */
-  __pyx_slice__33 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__33)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__33);
-  __Pyx_GIVEREF(__pyx_slice__33);
+  __pyx_slice__34 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__34);
+  __Pyx_GIVEREF(__pyx_slice__34);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2789
  *         _assertValidNode(element)
@@ -188469,9 +188666,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         else:
  *             events = (u"start",)
  */
-  __pyx_tuple__36 = PyTuple_Pack(2, __pyx_n_u_start, __pyx_n_u_end); if (unlikely(!__pyx_tuple__36)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__36);
-  __Pyx_GIVEREF(__pyx_tuple__36);
+  __pyx_tuple__37 = PyTuple_Pack(2, __pyx_n_u_start, __pyx_n_u_end); if (unlikely(!__pyx_tuple__37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__37);
+  __Pyx_GIVEREF(__pyx_tuple__37);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2791
  *             events = (u"start", u"end")
@@ -188480,9 +188677,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         self._start_element = element
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
  */
-  __pyx_tuple__37 = PyTuple_Pack(1, __pyx_n_u_start); if (unlikely(!__pyx_tuple__37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__37);
-  __Pyx_GIVEREF(__pyx_tuple__37);
+  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_n_u_start); if (unlikely(!__pyx_tuple__38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__38);
+  __Pyx_GIVEREF(__pyx_tuple__38);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3048
  *     cdef _Document doc
@@ -188491,9 +188688,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                          " efficient, use fromstring() instead")
  *     if parser is None:
  */
-  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_passing_a_single_string_into_fro); if (unlikely(!__pyx_tuple__38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__38);
-  __Pyx_GIVEREF(__pyx_tuple__38);
+  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_passing_a_single_string_into_fro); if (unlikely(!__pyx_tuple__39)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__39);
+  __Pyx_GIVEREF(__pyx_tuple__39);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3127
  *     if method == 'c14n':
@@ -188502,9 +188699,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")
  */
-  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__39)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__39);
-  __Pyx_GIVEREF(__pyx_tuple__39);
+  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__40)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__40);
+  __Pyx_GIVEREF(__pyx_tuple__40);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3129
  *             raise ValueError("Cannot specify encoding with C14N")
@@ -188513,9 +188710,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  */
-  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__40)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__40);
-  __Pyx_GIVEREF(__pyx_tuple__40);
+  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__41);
+  __Pyx_GIVEREF(__pyx_tuple__41);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3132
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
@@ -188524,9 +188721,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:
  */
-  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__41);
-  __Pyx_GIVEREF(__pyx_tuple__41);
+  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__42)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__42);
+  __Pyx_GIVEREF(__pyx_tuple__42);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":18
  *         """
@@ -188535,9 +188732,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return 0
  * 
  */
-  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_Proxy_invalidated); if (unlikely(!__pyx_tuple__42)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__42);
-  __Pyx_GIVEREF(__pyx_tuple__42);
+  __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_Proxy_invalidated); if (unlikely(!__pyx_tuple__43)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__43);
+  __Pyx_GIVEREF(__pyx_tuple__43);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":196
  *             children = [ el for el in children if el.tag == tag ]
@@ -188546,9 +188743,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return iter(children)
  * 
  */
-  __pyx_slice__43 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__43)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__43);
-  __Pyx_GIVEREF(__pyx_slice__43);
+  __pyx_slice__44 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__44)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__44);
+  __Pyx_GIVEREF(__pyx_slice__44);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":61
  *             tag = _utf8(_getattr(_getattr(self, '__class__'), '__name__'))
@@ -188557,9 +188754,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         try:
  *             parser = _getattr(self, 'PARSER')
  */
-  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_b__4); if (unlikely(!__pyx_tuple__44)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__44);
-  __Pyx_GIVEREF(__pyx_tuple__44);
+  __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_b__4); if (unlikely(!__pyx_tuple__45)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__45);
+  __Pyx_GIVEREF(__pyx_tuple__45);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":46
  *             class_dict_iterable = class_dict_iterable.items()
@@ -188568,9 +188765,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self[name] = item
  * 
  */
-  __pyx_slice__45 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__45)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__45);
-  __Pyx_GIVEREF(__pyx_slice__45);
+  __pyx_slice__46 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__46)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__46);
+  __Pyx_GIVEREF(__pyx_slice__46);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1464
  *         XMLParser.__init__(self, **kwargs)
@@ -188579,9 +188776,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         self._setBaseURL(base_url)
  *         self._collectEvents(events, tag)
  */
-  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_n_s_end); if (unlikely(!__pyx_tuple__47)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__47);
-  __Pyx_GIVEREF(__pyx_tuple__47);
+  __pyx_tuple__48 = PyTuple_Pack(1, __pyx_n_s_end); if (unlikely(!__pyx_tuple__48)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__48);
+  __Pyx_GIVEREF(__pyx_tuple__48);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1628
  *         HTMLParser.__init__(self, **kwargs)
@@ -188590,9 +188787,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         self._setBaseURL(base_url)
  *         self._collectEvents(events, tag)
  */
-  __pyx_tuple__48 = PyTuple_Pack(1, __pyx_n_s_end); if (unlikely(!__pyx_tuple__48)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__48);
-  __Pyx_GIVEREF(__pyx_tuple__48);
+  __pyx_tuple__49 = PyTuple_Pack(1, __pyx_n_s_end); if (unlikely(!__pyx_tuple__49)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__49);
+  __Pyx_GIVEREF(__pyx_tuple__49);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1781
  *     if isinstance(text, unicode):
@@ -188601,9 +188798,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 u"Unicode strings with encoding declaration are not supported. "
  *                 u"Please use bytes input or XML fragments without declaration.")
  */
-  __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_u_Unicode_strings_with_encoding_de); if (unlikely(!__pyx_tuple__49)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__49);
-  __Pyx_GIVEREF(__pyx_tuple__49);
+  __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_u_Unicode_strings_with_encoding_de); if (unlikely(!__pyx_tuple__50)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__50);
+  __Pyx_GIVEREF(__pyx_tuple__50);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":115
  *     if enchandler is NULL and c_enc is not NULL:
@@ -188612,9 +188809,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  */
-  __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_UTF_8); if (unlikely(!__pyx_tuple__50)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__50);
-  __Pyx_GIVEREF(__pyx_tuple__50);
+  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_UTF_8); if (unlikely(!__pyx_tuple__51)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__51);
+  __Pyx_GIVEREF(__pyx_tuple__51);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":574
  *             writer   = _FilelikeWriter(f, compression=compression)
@@ -188623,9 +188820,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  */
-  __pyx_tuple__57 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__57)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__57);
-  __Pyx_GIVEREF(__pyx_tuple__57);
+  __pyx_tuple__58 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__58)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__58);
+  __Pyx_GIVEREF(__pyx_tuple__58);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":686
  *         cdef int c_standalone
@@ -188634,9 +188831,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL
  */
-  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_s_XML_declaration_already_written); if (unlikely(!__pyx_tuple__58)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__58);
-  __Pyx_GIVEREF(__pyx_tuple__58);
+  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_XML_declaration_already_written); if (unlikely(!__pyx_tuple__59)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__59);
+  __Pyx_GIVEREF(__pyx_tuple__59);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":711
  *             return
@@ -188645,9 +188842,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  */
-  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_DOCTYPE_already_written_or_canno); if (unlikely(!__pyx_tuple__59)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__59);
-  __Pyx_GIVEREF(__pyx_tuple__59);
+  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_DOCTYPE_already_written_or_canno); if (unlikely(!__pyx_tuple__60)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__60);
+  __Pyx_GIVEREF(__pyx_tuple__60);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":753
  *     cdef _write_start_element(self, element_config):
@@ -188656,9 +188853,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  */
-  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_trailing_element_t); if (unlikely(!__pyx_tuple__61)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__61);
-  __Pyx_GIVEREF(__pyx_tuple__61);
+  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_trailing_element_t); if (unlikely(!__pyx_tuple__62)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__62);
+  __Pyx_GIVEREF(__pyx_tuple__62);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":791
  *     cdef _write_end_element(self, element_config):
@@ -188667,9 +188864,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  */
-  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_not_in_an_element); if (unlikely(!__pyx_tuple__65)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__65);
-  __Pyx_GIVEREF(__pyx_tuple__65);
+  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_not_in_an_element); if (unlikely(!__pyx_tuple__66)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__66);
+  __Pyx_GIVEREF(__pyx_tuple__66);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":792
  *         if self._status != WRITER_IN_ELEMENT:
@@ -188678,12 +188875,12 @@ static int __Pyx_InitCachedConstants(void) {
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  * 
  */
-  __pyx_slice__66 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__66)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__66);
-  __Pyx_GIVEREF(__pyx_slice__66);
   __pyx_slice__67 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__67)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_slice__67);
   __Pyx_GIVEREF(__pyx_slice__67);
+  __pyx_slice__68 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__68)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__68);
+  __Pyx_GIVEREF(__pyx_slice__68);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":793
  *             raise LxmlSyntaxError("not in an element")
@@ -188692,9 +188889,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *         name, prefix = self._element_stack.pop()[1:3]
  */
-  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_s_inconsistent_exit_action_in_cont); if (unlikely(!__pyx_tuple__68)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__68);
-  __Pyx_GIVEREF(__pyx_tuple__68);
+  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_s_inconsistent_exit_action_in_cont); if (unlikely(!__pyx_tuple__69)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__69);
+  __Pyx_GIVEREF(__pyx_tuple__69);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":795
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
@@ -188703,9 +188900,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')
  *         self._write_qname(name, prefix)
  */
-  __pyx_slice__69 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__69)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__69);
-  __Pyx_GIVEREF(__pyx_slice__69);
+  __pyx_slice__70 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__70)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__70);
+  __Pyx_GIVEREF(__pyx_slice__70);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":847
  *                 if self._status != WRITER_IN_ELEMENT:
@@ -188714,9 +188911,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  */
-  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_not_in_an_element); if (unlikely(!__pyx_tuple__71)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__71);
-  __Pyx_GIVEREF(__pyx_tuple__71);
+  __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_s_not_in_an_element); if (unlikely(!__pyx_tuple__72)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__72);
+  __Pyx_GIVEREF(__pyx_tuple__72);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":852
  *             elif iselement(content):
@@ -188725,9 +188922,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  */
-  __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_trailing_element_t); if (unlikely(!__pyx_tuple__72)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__72);
-  __Pyx_GIVEREF(__pyx_tuple__72);
+  __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_trailing_element_t); if (unlikely(!__pyx_tuple__73)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__73);
+  __Pyx_GIVEREF(__pyx_tuple__73);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":866
  *         if raise_on_error:
@@ -188736,9 +188933,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")
  */
-  __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_s_no_content_written); if (unlikely(!__pyx_tuple__73)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__73);
-  __Pyx_GIVEREF(__pyx_tuple__73);
+  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_no_content_written); if (unlikely(!__pyx_tuple__74)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__74);
+  __Pyx_GIVEREF(__pyx_tuple__74);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":868
  *                 raise LxmlSyntaxError("no content written")
@@ -188747,9 +188944,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:
  */
-  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_pending_open_tags_on_close); if (unlikely(!__pyx_tuple__74)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__74);
-  __Pyx_GIVEREF(__pyx_tuple__74);
+  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_s_pending_open_tags_on_close); if (unlikely(!__pyx_tuple__75)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__75);
+  __Pyx_GIVEREF(__pyx_tuple__75);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":66
  *     cdef bint _close_source_after_read
@@ -188758,9 +188955,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                  attribute_defaults=False, dtd_validation=False,
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  */
-  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_n_u_end); if (unlikely(!__pyx_tuple__75)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__75);
-  __Pyx_GIVEREF(__pyx_tuple__75);
+  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_n_u_end); if (unlikely(!__pyx_tuple__76)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__76);
+  __Pyx_GIVEREF(__pyx_tuple__76);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":217
  *     @cython.final
@@ -188769,9 +188966,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if not isinstance(data, bytes):
  *             self._close_source()
  */
-  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_tuple__76)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__76);
-  __Pyx_GIVEREF(__pyx_tuple__76);
+  __pyx_tuple__77 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_tuple__77)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__77);
+  __Pyx_GIVEREF(__pyx_tuple__77);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":220
  *         if not isinstance(data, bytes):
@@ -188780,9 +188977,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if not data:
  *             try:
  */
-  __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_s_reading_file_objects_must_return); if (unlikely(!__pyx_tuple__77)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__77);
-  __Pyx_GIVEREF(__pyx_tuple__77);
+  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_s_reading_file_objects_must_return); if (unlikely(!__pyx_tuple__78)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__78);
+  __Pyx_GIVEREF(__pyx_tuple__78);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":244
  *     cdef int    _event_filter
@@ -188791,9 +188988,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         cdef _Element root
  *         cdef int ns_count
  */
-  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_n_u_end); if (unlikely(!__pyx_tuple__78)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__78);
-  __Pyx_GIVEREF(__pyx_tuple__78);
+  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_n_u_end); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__79);
+  __Pyx_GIVEREF(__pyx_tuple__79);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":273
  *         cdef int ns_count = 0
@@ -188802,9 +188999,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if self._matcher is not None and self._index >= 0:
  *             node = self._node_stack[self._index][0]
  */
-  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__79);
-  __Pyx_GIVEREF(__pyx_tuple__79);
+  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__80)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__80);
+  __Pyx_GIVEREF(__pyx_tuple__80);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":305
  *                 self._index += 1
@@ -188813,9 +189010,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise StopIteration
  * 
  */
-  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__80)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__80);
-  __Pyx_GIVEREF(__pyx_tuple__80);
+  __pyx_tuple__81 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__81)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__81);
+  __Pyx_GIVEREF(__pyx_tuple__81);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":329
  *                 self._events.append( (u"end", node) )
@@ -188824,9 +189021,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-  __pyx_tuple__81 = PyTuple_Pack(2, __pyx_kp_u_end_ns, Py_None); if (unlikely(!__pyx_tuple__81)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__81);
-  __Pyx_GIVEREF(__pyx_tuple__81);
+  __pyx_tuple__82 = PyTuple_Pack(2, __pyx_kp_u_end_ns, Py_None); if (unlikely(!__pyx_tuple__82)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__82);
+  __Pyx_GIVEREF(__pyx_tuple__82);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":15
  *     global _find_id_attributes
@@ -188835,9 +189032,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
  */
-  __pyx_tuple__82 = PyTuple_Pack(1, __pyx_kp_u_string_id); if (unlikely(!__pyx_tuple__82)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__82);
-  __Pyx_GIVEREF(__pyx_tuple__82);
+  __pyx_tuple__83 = PyTuple_Pack(1, __pyx_kp_u_string_id); if (unlikely(!__pyx_tuple__83)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__83);
+  __Pyx_GIVEREF(__pyx_tuple__83);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":21
  *     dic = {}
@@ -188846,9 +189043,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     return (root, dic)
  * 
  */
-  __pyx_tuple__83 = PyTuple_Pack(1, __pyx_n_u_id); if (unlikely(!__pyx_tuple__83)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__83);
-  __Pyx_GIVEREF(__pyx_tuple__83);
+  __pyx_tuple__84 = PyTuple_Pack(1, __pyx_n_u_id); if (unlikely(!__pyx_tuple__84)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__84);
+  __Pyx_GIVEREF(__pyx_tuple__84);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":114
  *         if self._keys is None:
@@ -188857,9 +189054,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     def __iter__(self):
  */
-  __pyx_slice__84 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__84)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__84);
-  __Pyx_GIVEREF(__pyx_slice__84);
+  __pyx_slice__85 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__85)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__85);
+  __Pyx_GIVEREF(__pyx_slice__85);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":132
  *         if self._items is None:
@@ -188868,9 +189065,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     def iteritems(self):
  */
-  __pyx_slice__85 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__85)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__85);
-  __Pyx_GIVEREF(__pyx_slice__85);
+  __pyx_slice__86 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__86)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__86);
+  __Pyx_GIVEREF(__pyx_slice__86);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":446
  *         if function_mapping is None:
@@ -188879,9 +189076,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         for function_name in function_mapping:
  *             functions[(ns, function_name)] = getattr(module, function_name)
  */
-  __pyx_tuple__86 = PyTuple_Pack(1, __pyx_n_u__46); if (unlikely(!__pyx_tuple__86)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__86);
-  __Pyx_GIVEREF(__pyx_tuple__86);
+  __pyx_tuple__87 = PyTuple_Pack(1, __pyx_n_u__47); if (unlikely(!__pyx_tuple__87)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__87);
+  __Pyx_GIVEREF(__pyx_tuple__87);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":521
  *                 return ()
@@ -188890,9 +189087,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         result_list = []
  *         root = Element(u'matches')
  */
-  __pyx_tuple__87 = PyTuple_Pack(1, __pyx_kp_u__15); if (unlikely(!__pyx_tuple__87)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__87);
-  __Pyx_GIVEREF(__pyx_tuple__87);
+  __pyx_tuple__88 = PyTuple_Pack(1, __pyx_kp_u__15); if (unlikely(!__pyx_tuple__88)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__88);
+  __Pyx_GIVEREF(__pyx_tuple__88);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":523
  *             results.extend( result.groups(u'') )
@@ -188901,9 +189098,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         join_groups = u''.join
  *         for s_match in results:
  */
-  __pyx_tuple__88 = PyTuple_Pack(1, __pyx_n_u_matches); if (unlikely(!__pyx_tuple__88)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__88);
-  __Pyx_GIVEREF(__pyx_tuple__88);
+  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_n_u_matches); if (unlikely(!__pyx_tuple__89)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__89);
+  __Pyx_GIVEREF(__pyx_tuple__89);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":142
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
@@ -188912,9 +189109,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  */
-  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_kp_u_This_version_of_libxml2_has_a_kn); if (unlikely(!__pyx_tuple__89)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__89);
-  __Pyx_GIVEREF(__pyx_tuple__89);
+  __pyx_tuple__90 = PyTuple_Pack(1, __pyx_kp_u_This_version_of_libxml2_has_a_kn); if (unlikely(!__pyx_tuple__90)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__90);
+  __Pyx_GIVEREF(__pyx_tuple__90);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":510
  *                 i += 1
@@ -188923,9 +189120,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  */
-  __pyx_slice__90 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__90)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_slice__90);
-  __Pyx_GIVEREF(__pyx_slice__90);
+  __pyx_slice__91 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__91)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_slice__91);
+  __Pyx_GIVEREF(__pyx_slice__91);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":516
  *                 # FIXME: this also replaces {namespaces} within strings!
@@ -188933,9 +189130,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         path = path_utf.decode('utf8')             # <<<<<<<<<<<<<<
  *         return path, namespaces
  */
-  __pyx_tuple__91 = PyTuple_Pack(1, __pyx_n_s_utf8); if (unlikely(!__pyx_tuple__91)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__91);
-  __Pyx_GIVEREF(__pyx_tuple__91);
+  __pyx_tuple__92 = PyTuple_Pack(1, __pyx_n_s_utf8); if (unlikely(!__pyx_tuple__92)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__92);
+  __Pyx_GIVEREF(__pyx_tuple__92);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":398
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
@@ -188944,9 +189141,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             c_style = xslt.xsltParseStylesheetDoc(c_doc)
  * 
  */
-  __pyx_tuple__93 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__93)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__93);
-  __Pyx_GIVEREF(__pyx_tuple__93);
+  __pyx_tuple__94 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__94)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__94);
+  __Pyx_GIVEREF(__pyx_tuple__94);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":465
  *         """
@@ -188955,9 +189152,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-  __pyx_tuple__94 = PyTuple_Pack(1, __pyx_kp_s_cannot_set_a_maximum_stylesheet); if (unlikely(!__pyx_tuple__94)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__94);
-  __Pyx_GIVEREF(__pyx_tuple__94);
+  __pyx_tuple__95 = PyTuple_Pack(1, __pyx_kp_s_cannot_set_a_maximum_stylesheet); if (unlikely(!__pyx_tuple__95)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__95);
+  __Pyx_GIVEREF(__pyx_tuple__95);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":844
  *     global __findStylesheetByID
@@ -188966,9 +189163,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-  __pyx_tuple__95 = PyTuple_Pack(1, __pyx_kp_u_xsl_stylesheet_xml_id_id); if (unlikely(!__pyx_tuple__95)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__95);
-  __Pyx_GIVEREF(__pyx_tuple__95);
+  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_kp_u_xsl_stylesheet_xml_id_id); if (unlikely(!__pyx_tuple__96)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__96);
+  __Pyx_GIVEREF(__pyx_tuple__96);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":225
  *                 e = unicode(e).encode(u"UTF-8")
@@ -188977,9 +189174,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s': %s",
  */
-  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_kp_u_UTF_8); if (unlikely(!__pyx_tuple__96)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__96);
-  __Pyx_GIVEREF(__pyx_tuple__96);
+  __pyx_tuple__97 = PyTuple_Pack(1, __pyx_kp_u_UTF_8); if (unlikely(!__pyx_tuple__97)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__97);
+  __Pyx_GIVEREF(__pyx_tuple__97);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":281
  *             if _isString(file):
@@ -188988,9 +189185,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     self._c_dtd = xmlparser.xmlParseDTD(NULL, _xcstr(file))
  *             elif hasattr(file, 'read'):
  */
-  __pyx_tuple__97 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__97)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__97);
-  __Pyx_GIVEREF(__pyx_tuple__97);
+  __pyx_tuple__98 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__98)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__98);
+  __Pyx_GIVEREF(__pyx_tuple__98);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":288
  *                 raise DTDParseError, u"file must be a filename or file-like object"
@@ -188999,9 +189196,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_dtd = xmlparser.xmlParseDTD(<const_xmlChar*>external_id, NULL)
  *         else:
  */
-  __pyx_tuple__98 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__98)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__98);
-  __Pyx_GIVEREF(__pyx_tuple__98);
+  __pyx_tuple__99 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__99)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__99);
+  __Pyx_GIVEREF(__pyx_tuple__99);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":364
  *         valid_ctxt = dtdvalid.xmlNewValidCtxt()
@@ -189010,9 +189207,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *         # work around error reporting bug in libxml2 <= 2.9.1 (and later?)
  */
-  __pyx_tuple__99 = PyTuple_Pack(1, __pyx_kp_u_Failed_to_create_validation_cont); if (unlikely(!__pyx_tuple__99)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__99);
-  __Pyx_GIVEREF(__pyx_tuple__99);
+  __pyx_tuple__100 = PyTuple_Pack(1, __pyx_kp_u_Failed_to_create_validation_cont); if (unlikely(!__pyx_tuple__100)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__100);
+  __Pyx_GIVEREF(__pyx_tuple__100);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":372
  * 
@@ -189021,9 +189218,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                 ret = dtdvalid.xmlValidateDtd(valid_ctxt, c_doc, self._c_dtd)
  */
-  __pyx_tuple__100 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__100)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__100);
-  __Pyx_GIVEREF(__pyx_tuple__100);
+  __pyx_tuple__101 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__101)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__101);
+  __Pyx_GIVEREF(__pyx_tuple__101);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":394
  *     error_log = _ErrorLog()
@@ -189032,9 +189229,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         c_dtd = dtd_parser._readDtd()
  * 
  */
-  __pyx_tuple__101 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__101)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__101);
-  __Pyx_GIVEREF(__pyx_tuple__101);
+  __pyx_tuple__102 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__102)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__102);
+  __Pyx_GIVEREF(__pyx_tuple__102);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":58
  *                 doc = None
@@ -189043,9 +189240,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     parser_ctxt = relaxng.xmlRelaxNGNewParserCtxt(_cstr(filename))
  *             else:
  */
-  __pyx_tuple__102 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__102)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__102);
-  __Pyx_GIVEREF(__pyx_tuple__102);
+  __pyx_tuple__103 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__103)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__103);
+  __Pyx_GIVEREF(__pyx_tuple__103);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":98
  *                 filename = file
@@ -189054,9 +189251,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 parser_ctxt = schematron.xmlSchematronNewParserCtxt(_cstr(filename))
  *         else:
  */
-  __pyx_tuple__103 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__103)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__103);
-  __Pyx_GIVEREF(__pyx_tuple__103);
+  __pyx_tuple__104 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__104)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__104);
+  __Pyx_GIVEREF(__pyx_tuple__104);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":110
  * 
@@ -189065,9 +189262,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_schema = schematron.xmlSchematronParse(parser_ctxt)
  *         finally:
  */
-  __pyx_tuple__104 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__104)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__104);
-  __Pyx_GIVEREF(__pyx_tuple__104);
+  __pyx_tuple__105 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__105)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__105);
+  __Pyx_GIVEREF(__pyx_tuple__105);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":169
  *             else:
@@ -189076,9 +189273,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                     with nogil:
  */
-  __pyx_tuple__105 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__105)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__105);
-  __Pyx_GIVEREF(__pyx_tuple__105);
+  __pyx_tuple__106 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__106)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__106);
+  __Pyx_GIVEREF(__pyx_tuple__106);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":105
  *         from UserDict import UserDict as MutableMapping  # Py2.[45]
@@ -189087,10 +189284,10 @@ static int __Pyx_InitCachedConstants(void) {
  *                 return []
  * 
  */
-  __pyx_tuple__106 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__106);
-  __Pyx_GIVEREF(__pyx_tuple__106);
-  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_keys, 105, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__107 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__107);
+  __Pyx_GIVEREF(__pyx_tuple__107);
+  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_keys, 105, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":109
  * 
@@ -189099,10 +189296,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise KeyError, key
  * 
  */
-  __pyx_tuple__108 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__108);
-  __Pyx_GIVEREF(__pyx_tuple__108);
-  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_getitem, 109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__109 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__109);
+  __Pyx_GIVEREF(__pyx_tuple__109);
+  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_getitem, 109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":112
  *         raise KeyError, key
@@ -189111,10 +189308,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise KeyError, key
  * 
  */
-  __pyx_tuple__110 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__110);
-  __Pyx_GIVEREF(__pyx_tuple__110);
-  __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_setitem, 112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__111 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__111);
+  __Pyx_GIVEREF(__pyx_tuple__111);
+  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_setitem, 112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":115
  *         raise KeyError, key
@@ -189123,10 +189320,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise KeyError, key
  * 
  */
-  __pyx_tuple__112 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__112);
-  __Pyx_GIVEREF(__pyx_tuple__112);
-  __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_delitem, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__113 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__113);
+  __Pyx_GIVEREF(__pyx_tuple__113);
+  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_delitem, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":118
  *         raise KeyError, key
@@ -189135,10 +189332,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         return False
  * 
  */
-  __pyx_tuple__114 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__114);
-  __Pyx_GIVEREF(__pyx_tuple__114);
-  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_contains, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__115 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__115);
+  __Pyx_GIVEREF(__pyx_tuple__115);
+  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_contains, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":121
  *         return False
@@ -189147,10 +189344,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         return 0
  * 
  */
-  __pyx_tuple__116 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__116)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__116);
-  __Pyx_GIVEREF(__pyx_tuple__116);
-  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_len, 121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__117 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__117)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__117);
+  __Pyx_GIVEREF(__pyx_tuple__117);
+  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_len, 121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":124
  *         return 0
@@ -189159,10 +189356,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         return ITER_EMPTY
  *     iterkeys = itervalues = iteritems = __iter__
  */
-  __pyx_tuple__118 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__118)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__118);
-  __Pyx_GIVEREF(__pyx_tuple__118);
-  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_iter_2, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__119 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__119)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__119);
+  __Pyx_GIVEREF(__pyx_tuple__119);
+  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_iter_2, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":167
  * 
@@ -189171,9 +189368,9 @@ static int __Pyx_InitCachedConstants(void) {
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
  * 
  */
-  __pyx_tuple__120 = PyTuple_Pack(1, __pyx_kp_u_UTF_8); if (unlikely(!__pyx_tuple__120)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__120);
-  __Pyx_GIVEREF(__pyx_tuple__120);
+  __pyx_tuple__121 = PyTuple_Pack(1, __pyx_kp_u_UTF_8); if (unlikely(!__pyx_tuple__121)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__121);
+  __Pyx_GIVEREF(__pyx_tuple__121);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":186
  * }
@@ -189182,9 +189379,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * def register_namespace(prefix, uri):
  */
-  __pyx_tuple__121 = PyTuple_Pack(1, __pyx_kp_b_ns_d_2); if (unlikely(!__pyx_tuple__121)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__121);
-  __Pyx_GIVEREF(__pyx_tuple__121);
+  __pyx_tuple__122 = PyTuple_Pack(1, __pyx_kp_b_ns_d_2); if (unlikely(!__pyx_tuple__122)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__122);
+  __Pyx_GIVEREF(__pyx_tuple__122);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":188
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
@@ -189193,10 +189390,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Registers a namespace prefix that newly created Elements in that
  *     namespace will use.  The registry is global, and any existing
  */
-  __pyx_tuple__122 = PyTuple_Pack(6, __pyx_n_s_prefix, __pyx_n_s_uri, __pyx_n_s_prefix_utf, __pyx_n_s_uri_utf, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__122)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__122);
-  __Pyx_GIVEREF(__pyx_tuple__122);
-  __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__122, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_register_namespace, 188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__123 = PyTuple_Pack(6, __pyx_n_s_prefix, __pyx_n_s_uri, __pyx_n_s_prefix_utf, __pyx_n_s_uri_utf, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__123)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__123);
+  __Pyx_GIVEREF(__pyx_tuple__123);
+  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_register_namespace, 188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":214
  *     this one.
@@ -189205,13 +189402,13 @@ static int __Pyx_InitCachedConstants(void) {
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_tuple__124 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_error_log); if (unlikely(!__pyx_tuple__124)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__124);
-  __Pyx_GIVEREF(__pyx_tuple__124);
-  __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_init, 214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_tuple__126 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__126)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__126);
-  __Pyx_GIVEREF(__pyx_tuple__126);
+  __pyx_tuple__125 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_error_log); if (unlikely(!__pyx_tuple__125)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__125);
+  __Pyx_GIVEREF(__pyx_tuple__125);
+  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_init, 214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__127 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__127)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__127);
+  __Pyx_GIVEREF(__pyx_tuple__127);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":274
  * try:
@@ -189220,9 +189417,9 @@ static int __Pyx_InitCachedConstants(void) {
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
  */
-  __pyx_tuple__127 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__127)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__127);
-  __Pyx_GIVEREF(__pyx_tuple__127);
+  __pyx_tuple__128 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__128)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__128);
+  __Pyx_GIVEREF(__pyx_tuple__128);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":8
  * # module level API functions
@@ -189231,7 +189428,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""clear_error_log()
  * 
  */
-  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_2, __pyx_n_s_clear_error_log_2, 8, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_2, __pyx_n_s_clear_error_log_2, 8, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":545
  * 
@@ -189240,9 +189437,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __pyx_tuple__129 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__129)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__129);
-  __Pyx_GIVEREF(__pyx_tuple__129);
+  __pyx_tuple__130 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__130)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__130);
+  __Pyx_GIVEREF(__pyx_tuple__130);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":574
  *     return _getGlobalErrorLog().copy()
@@ -189251,10 +189448,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""use_global_python_log(log)
  * 
  */
-  __pyx_tuple__130 = PyTuple_Pack(1, __pyx_n_s_log); if (unlikely(!__pyx_tuple__130)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__130);
-  __Pyx_GIVEREF(__pyx_tuple__130);
-  __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_2, __pyx_n_s_use_global_python_log, 574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__131 = PyTuple_Pack(1, __pyx_n_s_log); if (unlikely(!__pyx_tuple__131)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__131);
+  __Pyx_GIVEREF(__pyx_tuple__131);
+  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_2, __pyx_n_s_use_global_python_log, 574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":739
  * # cannot handle strings that are a few thousand bytes in length.
@@ -189263,9 +189460,9 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * WARNING=1
  */
-  __pyx_tuple__132 = PyTuple_Pack(1, __pyx_kp_u_NONE_0_WARNING_1_ERROR_2_FATAL_3); if (unlikely(!__pyx_tuple__132)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__132);
-  __Pyx_GIVEREF(__pyx_tuple__132);
+  __pyx_tuple__133 = PyTuple_Pack(1, __pyx_kp_u_NONE_0_WARNING_1_ERROR_2_FATAL_3); if (unlikely(!__pyx_tuple__133)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__133);
+  __Pyx_GIVEREF(__pyx_tuple__133);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":746
  * """,)
@@ -189274,9 +189471,9 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * PARSER=1
  */
-  __pyx_tuple__133 = PyTuple_Pack(1, __pyx_kp_u_NONE_0_PARSER_1_TREE_2_NAMESPACE); if (unlikely(!__pyx_tuple__133)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__133);
-  __Pyx_GIVEREF(__pyx_tuple__133);
+  __pyx_tuple__134 = PyTuple_Pack(1, __pyx_kp_u_NONE_0_PARSER_1_TREE_2_NAMESPACE); if (unlikely(!__pyx_tuple__134)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__134);
+  __Pyx_GIVEREF(__pyx_tuple__134);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":780
  * """,)
@@ -189285,9 +189482,9 @@ static int __Pyx_InitCachedConstants(void) {
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __pyx_tuple__134 = PyTuple_Pack(11, __pyx_kp_u_ERR_OK_0_ERR_INTERNAL_ERROR_1_ER, __pyx_kp_u_ERR_ENCODING_NAME_79_ERR_HYPHEN, __pyx_kp_u_RNGP_ATTRIBUTE_CONTENT_1003_RNGP, __pyx_kp_u_RNGP_PAT_DATA_EXCEPT_ONEMORE_107, __pyx_kp_u_TREE_NOT_UTF8_1303_SAVE_NOT_UTF8, __pyx_kp_u_SCHEMAP_EXTENSION_NO_BASE_1707_S, __pyx_kp_u_SCHEMAP_DEF_AND_PREFIX_1768_SCHE, __pyx_kp_u_SCHEMAV_CVC_MINLENGTH_VALID_1831, __pyx_kp_u_SCHEMAP_SRC_RESOLVE_3004_SCHEMAP, __pyx_kp_u_SCHEMAP_CVC_SIMPLE_TYPE_3062_SCH, __pyx_kp_u_I18N_NO_OUTPUT_6004_BUF_OVERFLOW); if (unlikely(!__pyx_tuple__134)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__134);
-  __Pyx_GIVEREF(__pyx_tuple__134);
+  __pyx_tuple__135 = PyTuple_Pack(11, __pyx_kp_u_ERR_OK_0_ERR_INTERNAL_ERROR_1_ER, __pyx_kp_u_ERR_ENCODING_NAME_79_ERR_HYPHEN, __pyx_kp_u_RNGP_ATTRIBUTE_CONTENT_1003_RNGP, __pyx_kp_u_RNGP_PAT_DATA_EXCEPT_ONEMORE_107, __pyx_kp_u_TREE_NOT_UTF8_1303_SAVE_NOT_UTF8, __pyx_kp_u_SCHEMAP_EXTENSION_NO_BASE_1707_S, __pyx_kp_u_SCHEMAP_DEF_AND_PREFIX_1768_SCHE, __pyx_kp_u_SCHEMAV_CVC_MINLENGTH_VALID_1831, __pyx_kp_u_SCHEMAP_SRC_RESOLVE_3004_SCHEMAP, __pyx_kp_u_SCHEMAP_CVC_SIMPLE_TYPE_3062_SCH, __pyx_kp_u_I18N_NO_OUTPUT_6004_BUF_OVERFLOW); if (unlikely(!__pyx_tuple__135)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__135);
+  __Pyx_GIVEREF(__pyx_tuple__135);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1537
  * """,)
@@ -189296,9 +189493,9 @@ static int __Pyx_InitCachedConstants(void) {
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __pyx_tuple__135 = PyTuple_Pack(1, __pyx_kp_u_RELAXNG_OK_0_RELAXNG_ERR_MEMORY); if (unlikely(!__pyx_tuple__135)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__135);
-  __Pyx_GIVEREF(__pyx_tuple__135);
+  __pyx_tuple__136 = PyTuple_Pack(1, __pyx_kp_u_RELAXNG_OK_0_RELAXNG_ERR_MEMORY); if (unlikely(!__pyx_tuple__136)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__136);
+  __Pyx_GIVEREF(__pyx_tuple__136);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2831
  * # module-level API for ElementTree
@@ -189307,10 +189504,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Element(_tag, attrib=None, nsmap=None, **_extra)
  * 
  */
-  __pyx_tuple__136 = PyTuple_Pack(4, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__136)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__136);
-  __Pyx_GIVEREF(__pyx_tuple__136);
-  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Element, 2831, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__137 = PyTuple_Pack(4, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__137)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__137);
+  __Pyx_GIVEREF(__pyx_tuple__137);
+  __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Element, 2831, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2844
  *                         attrib, nsmap, _extra)
@@ -189319,10 +189516,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Comment(text=None)
  * 
  */
-  __pyx_tuple__138 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__138)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__138);
-  __Pyx_GIVEREF(__pyx_tuple__138);
-  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Comment, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__139 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__139)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__139);
+  __Pyx_GIVEREF(__pyx_tuple__139);
+  __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Comment, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2863
  *     return _elementFactory(doc, c_node)
@@ -189331,10 +189528,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""ProcessingInstruction(target, text=None)
  * 
  */
-  __pyx_tuple__140 = PyTuple_Pack(5, __pyx_n_s_target, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__140)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__140);
-  __Pyx_GIVEREF(__pyx_tuple__140);
-  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_ProcessingInstruction, 2863, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__141 = PyTuple_Pack(5, __pyx_n_s_target, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__141)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__141);
+  __Pyx_GIVEREF(__pyx_tuple__141);
+  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_ProcessingInstruction, 2863, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2903
  *         self._utf8_data = _utf8(data)
@@ -189343,10 +189540,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Entity(name)
  * 
  */
-  __pyx_tuple__142 = PyTuple_Pack(6, __pyx_n_s_name_2, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc, __pyx_n_s_name_utf, __pyx_n_s_c_name); if (unlikely(!__pyx_tuple__142)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__142);
-  __Pyx_GIVEREF(__pyx_tuple__142);
-  __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Entity, 2903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__143 = PyTuple_Pack(6, __pyx_n_s_name_2, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc, __pyx_n_s_name_utf, __pyx_n_s_c_name); if (unlikely(!__pyx_tuple__143)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__143);
+  __Pyx_GIVEREF(__pyx_tuple__143);
+  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_Entity, 2903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2928
  *     return _elementFactory(doc, c_node)
@@ -189355,10 +189552,10 @@ static int __Pyx_InitCachedConstants(void) {
  *                attrib=None, nsmap=None, **_extra):
  *     u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
  */
-  __pyx_tuple__144 = PyTuple_Pack(5, __pyx_n_s_parent, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__144)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__144);
-  __Pyx_GIVEREF(__pyx_tuple__144);
-  __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_SubElement, 2928, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__145 = PyTuple_Pack(5, __pyx_n_s_parent, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__145)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__145);
+  __Pyx_GIVEREF(__pyx_tuple__145);
+  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_SubElement, 2928, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2937
  *     return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)
@@ -189367,10 +189564,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""ElementTree(element=None, file=None, parser=None)
  * 
  */
-  __pyx_tuple__146 = PyTuple_Pack(10, __pyx_n_s_element, __pyx_n_s_file, __pyx_n_s_parser, __pyx_n_s_c_next, __pyx_n_s_c_node, __pyx_n_s_c_node_copy, __pyx_n_s_c_doc, __pyx_n_s_etree, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__146)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__146);
-  __Pyx_GIVEREF(__pyx_tuple__146);
-  __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__146, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_ElementTree, 2937, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__147 = PyTuple_Pack(10, __pyx_n_s_element, __pyx_n_s_file, __pyx_n_s_parser, __pyx_n_s_c_next, __pyx_n_s_c_node, __pyx_n_s_c_node_copy, __pyx_n_s_c_doc, __pyx_n_s_etree, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__147)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__147);
+  __Pyx_GIVEREF(__pyx_tuple__147);
+  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_ElementTree, 2937, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2962
  *     return _elementTreeFactory(doc, element)
@@ -189379,10 +189576,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""HTML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__148 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__148)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__148);
-  __Pyx_GIVEREF(__pyx_tuple__148);
-  __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_HTML, 2962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__149 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__149)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__149);
+  __Pyx_GIVEREF(__pyx_tuple__149);
+  __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_HTML, 2962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2987
  *         return result_container.result
@@ -189391,10 +189588,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__150 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__150)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__150);
-  __Pyx_GIVEREF(__pyx_tuple__150);
-  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_XML, 2987, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__151 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__151)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__151);
+  __Pyx_GIVEREF(__pyx_tuple__151);
+  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_XML, 2987, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3017
  *         return result_container.result
@@ -189403,10 +189600,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""fromstring(text, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__152 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__152)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__152);
-  __Pyx_GIVEREF(__pyx_tuple__152);
-  __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_fromstring, 3017, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__153 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__153)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__153);
+  __Pyx_GIVEREF(__pyx_tuple__153);
+  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_fromstring, 3017, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3037
  *         return result_container.result
@@ -189415,10 +189612,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""fromstringlist(strings, parser=None)
  * 
  */
-  __pyx_tuple__154 = PyTuple_Pack(5, __pyx_n_s_strings, __pyx_n_s_parser, __pyx_n_s_doc_2, __pyx_n_s_feed, __pyx_n_s_data); if (unlikely(!__pyx_tuple__154)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__154);
-  __Pyx_GIVEREF(__pyx_tuple__154);
-  __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_fromstringlist, 3037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__155 = PyTuple_Pack(5, __pyx_n_s_strings, __pyx_n_s_parser, __pyx_n_s_doc_2, __pyx_n_s_feed, __pyx_n_s_data); if (unlikely(!__pyx_tuple__155)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__155);
+  __Pyx_GIVEREF(__pyx_tuple__155);
+  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_fromstringlist, 3037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3057
  *     return parser.close()
@@ -189427,10 +189624,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""iselement(element)
  * 
  */
-  __pyx_tuple__156 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__156)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__156);
-  __Pyx_GIVEREF(__pyx_tuple__156);
-  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_iselement, 3057, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__157 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__157)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__157);
+  __Pyx_GIVEREF(__pyx_tuple__157);
+  __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_iselement, 3057, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3064
  *     return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL
@@ -189439,10 +189636,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""dump(elem, pretty_print=True, with_tail=True)
  * 
  */
-  __pyx_tuple__158 = PyTuple_Pack(4, __pyx_n_s_elem, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_xml); if (unlikely(!__pyx_tuple__158)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__158);
-  __Pyx_GIVEREF(__pyx_tuple__158);
-  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(1, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_dump, 3064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__159 = PyTuple_Pack(4, __pyx_n_s_elem, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_xml); if (unlikely(!__pyx_tuple__159)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__159);
+  __Pyx_GIVEREF(__pyx_tuple__159);
+  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(1, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_dump, 3064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3076
  *     sys.stdout.write(xml)
@@ -189451,10 +189648,10 @@ static int __Pyx_InitCachedConstants(void) {
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  */
-  __pyx_tuple__160 = PyTuple_Pack(13, __pyx_n_s_element_or_tree, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_xml_declaration, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone); if (unlikely(!__pyx_tuple__160)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__160);
-  __Pyx_GIVEREF(__pyx_tuple__160);
-  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__160, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tostring, 3076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__161 = PyTuple_Pack(13, __pyx_n_s_element_or_tree, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_xml_declaration, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone); if (unlikely(!__pyx_tuple__161)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__161);
+  __Pyx_GIVEREF(__pyx_tuple__161);
+  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tostring, 3076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3168
  *             python._fqtypename(element_or_tree).decode('utf8')
@@ -189463,10 +189660,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""tostringlist(element_or_tree, *args, **kwargs)
  * 
  */
-  __pyx_tuple__162 = PyTuple_Pack(3, __pyx_n_s_element_or_tree, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__162)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__162);
-  __Pyx_GIVEREF(__pyx_tuple__162);
-  __pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__162, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tostringlist, 3168, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__163 = PyTuple_Pack(3, __pyx_n_s_element_or_tree, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__163)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__163);
+  __Pyx_GIVEREF(__pyx_tuple__163);
+  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tostringlist, 3168, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3179
  *     return [tostring(element_or_tree, *args, **kwargs)]
@@ -189475,10 +189672,10 @@ static int __Pyx_InitCachedConstants(void) {
  *               bint with_tail=True, doctype=None):
  *     u"""tounicode(element_or_tree, method="xml", pretty_print=False,
  */
-  __pyx_tuple__164 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_doctype); if (unlikely(!__pyx_tuple__164)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__164);
-  __Pyx_GIVEREF(__pyx_tuple__164);
-  __pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__164, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tounicode, 3179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__165 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_doctype); if (unlikely(!__pyx_tuple__165)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__165);
+  __Pyx_GIVEREF(__pyx_tuple__165);
+  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_tounicode, 3179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3213
  *             type(element_or_tree)
@@ -189487,10 +189684,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""parse(source, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__166 = PyTuple_Pack(5, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__166)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__166);
-  __Pyx_GIVEREF(__pyx_tuple__166);
-  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_parse, 3213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__167 = PyTuple_Pack(5, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__167)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__167);
+  __Pyx_GIVEREF(__pyx_tuple__167);
+  __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml, __pyx_n_s_parse, 3213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":551
  *     LOOKUP_ELEMENT_CLASS = function
@@ -189499,10 +189696,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""set_element_class_lookup(lookup = None)
  * 
  */
-  __pyx_tuple__168 = PyTuple_Pack(1, __pyx_n_s_lookup); if (unlikely(!__pyx_tuple__168)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__168);
-  __Pyx_GIVEREF(__pyx_tuple__168);
-  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_3, __pyx_n_s_set_element_class_lookup, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__169 = PyTuple_Pack(1, __pyx_n_s_lookup); if (unlikely(!__pyx_tuple__169)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__169);
+  __Pyx_GIVEREF(__pyx_tuple__169);
+  __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_3, __pyx_n_s_set_element_class_lookup, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":175
  * __FUNCTION_NAMESPACE_REGISTRIES = {}
@@ -189511,10 +189708,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""FunctionNamespace(ns_uri)
  * 
  */
-  __pyx_tuple__170 = PyTuple_Pack(3, __pyx_n_s_ns_uri, __pyx_n_s_ns_utf, __pyx_n_s_registry); if (unlikely(!__pyx_tuple__170)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__170);
-  __Pyx_GIVEREF(__pyx_tuple__170);
-  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_4, __pyx_n_s_FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__171 = PyTuple_Pack(3, __pyx_n_s_ns_uri, __pyx_n_s_ns_utf, __pyx_n_s_registry); if (unlikely(!__pyx_tuple__171)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__171);
+  __Pyx_GIVEREF(__pyx_tuple__171);
+  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_4, __pyx_n_s_FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":18
  *     For compatibility with ElementTree 1.3 and later.
@@ -189523,10 +189720,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_tuple__172 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_code, __pyx_n_s_line, __pyx_n_s_column); if (unlikely(!__pyx_tuple__172)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__172);
-  __Pyx_GIVEREF(__pyx_tuple__172);
-  __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_init, 18, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__173 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_code, __pyx_n_s_line, __pyx_n_s_column); if (unlikely(!__pyx_tuple__173)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__173);
+  __Pyx_GIVEREF(__pyx_tuple__173);
+  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_init, 18, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1520
  * __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
@@ -189535,10 +189732,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""set_default_parser(parser=None)
  * 
  */
-  __pyx_tuple__174 = PyTuple_Pack(1, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__174)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__174);
-  __Pyx_GIVEREF(__pyx_tuple__174);
-  __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_set_default_parser, 1520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__175 = PyTuple_Pack(1, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__175)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__175);
+  __Pyx_GIVEREF(__pyx_tuple__175);
+  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_set_default_parser, 1520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1536
  *     __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
@@ -189547,7 +189744,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"get_default_parser()"
  *     return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  */
-  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_get_default_parser, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_5, __pyx_n_s_get_default_parser, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":468
  * 
@@ -189556,9 +189753,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * 
  */
-  __pyx_tuple__177 = PyTuple_Pack(2, __pyx_kp_s_end_ns, Py_None); if (unlikely(!__pyx_tuple__177)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__177);
-  __Pyx_GIVEREF(__pyx_tuple__177);
+  __pyx_tuple__178 = PyTuple_Pack(2, __pyx_kp_s_end_ns, Py_None); if (unlikely(!__pyx_tuple__178)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__178);
+  __Pyx_GIVEREF(__pyx_tuple__178);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":10
  *     # to push the Python level parser result through the parser
@@ -189567,10 +189764,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         self.result = result
  * 
  */
-  __pyx_tuple__178 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_result); if (unlikely(!__pyx_tuple__178)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__178);
-  __Pyx_GIVEREF(__pyx_tuple__178);
-  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_6, __pyx_n_s_init, 10, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__179 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_result); if (unlikely(!__pyx_tuple__179)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__179);
+  __Pyx_GIVEREF(__pyx_tuple__179);
+  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_6, __pyx_n_s_init, 10, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":3
  * cdef object _find_id_attributes
@@ -189579,10 +189776,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__180 = PyTuple_Pack(6, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_dic, __pyx_n_s_root, __pyx_n_s_elem); if (unlikely(!__pyx_tuple__180)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__180);
-  __Pyx_GIVEREF(__pyx_tuple__180);
-  __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(2, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__181 = PyTuple_Pack(6, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_dic, __pyx_n_s_root, __pyx_n_s_elem); if (unlikely(!__pyx_tuple__181)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__181);
+  __Pyx_GIVEREF(__pyx_tuple__181);
+  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":24
  *     return (root, dic)
@@ -189591,10 +189788,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLDTDID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_tuple__182 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_root); if (unlikely(!__pyx_tuple__182)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__182);
-  __Pyx_GIVEREF(__pyx_tuple__182);
-  __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__183 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_root); if (unlikely(!__pyx_tuple__183)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__183);
+  __Pyx_GIVEREF(__pyx_tuple__183);
+  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":44
  *         return (root, _IDDict(root))
@@ -189603,10 +189800,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""parseid(source, parser=None)
  * 
  */
-  __pyx_tuple__184 = PyTuple_Pack(4, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2); if (unlikely(!__pyx_tuple__184)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__184);
-  __Pyx_GIVEREF(__pyx_tuple__184);
-  __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__185 = PyTuple_Pack(4, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2); if (unlikely(!__pyx_tuple__185)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__185);
+  __Pyx_GIVEREF(__pyx_tuple__185);
+  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_7, __pyx_n_s_parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":3
  * # functions for tree cleanup and removing elements from subtrees
@@ -189615,10 +189812,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""cleanup_namespaces(tree_or_element)
  * 
  */
-  __pyx_tuple__186 = PyTuple_Pack(2, __pyx_n_s_tree_or_element, __pyx_n_s_element); if (unlikely(!__pyx_tuple__186)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__186);
-  __Pyx_GIVEREF(__pyx_tuple__186);
-  __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__187 = PyTuple_Pack(2, __pyx_n_s_tree_or_element, __pyx_n_s_element); if (unlikely(!__pyx_tuple__187)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__187);
+  __Pyx_GIVEREF(__pyx_tuple__187);
+  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":13
  *     _removeUnusedNamespaceDeclarations(element._c_node)
@@ -189627,10 +189824,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_attributes(tree_or_element, *attribute_names)
  * 
  */
-  __pyx_tuple__188 = PyTuple_Pack(4, __pyx_n_s_tree_or_element, __pyx_n_s_attribute_names, __pyx_n_s_matcher, __pyx_n_s_element); if (unlikely(!__pyx_tuple__188)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__188);
-  __Pyx_GIVEREF(__pyx_tuple__188);
-  __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__189 = PyTuple_Pack(4, __pyx_n_s_tree_or_element, __pyx_n_s_attribute_names, __pyx_n_s_matcher, __pyx_n_s_element); if (unlikely(!__pyx_tuple__189)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__189);
+  __Pyx_GIVEREF(__pyx_tuple__189);
+  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":54
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
@@ -189639,10 +189836,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
  * 
  */
-  __pyx_tuple__190 = PyTuple_Pack(12, __pyx_n_s_tree_or_element, __pyx_n_s_with_tail, __pyx_n_s_tag_names, __pyx_n_s_matcher, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_ns_tags, __pyx_n_s_c_ns_tags, __pyx_n_s_c_tag_count, __pyx_n_s_strip_comments, __pyx_n_s_strip_pis, __pyx_n_s_strip_entities); if (unlikely(!__pyx_tuple__190)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__190);
-  __Pyx_GIVEREF(__pyx_tuple__190);
-  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(1, 1, 12, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__191 = PyTuple_Pack(12, __pyx_n_s_tree_or_element, __pyx_n_s_with_tail, __pyx_n_s_tag_names, __pyx_n_s_matcher, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_ns_tags, __pyx_n_s_c_ns_tags, __pyx_n_s_c_tag_count, __pyx_n_s_strip_comments, __pyx_n_s_strip_pis, __pyx_n_s_strip_entities); if (unlikely(!__pyx_tuple__191)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__191);
+  __Pyx_GIVEREF(__pyx_tuple__191);
+  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 1, 12, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":132
  * 
@@ -189651,10 +189848,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_tags(tree_or_element, *tag_names)
  * 
  */
-  __pyx_tuple__192 = PyTuple_Pack(11, __pyx_n_s_tree_or_element, __pyx_n_s_tag_names, __pyx_n_s_matcher, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_ns_tags, __pyx_n_s_strip_comments, __pyx_n_s_strip_pis, __pyx_n_s_strip_entities, __pyx_n_s_c_ns_tags, __pyx_n_s_c_tag_count); if (unlikely(!__pyx_tuple__192)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__192);
-  __Pyx_GIVEREF(__pyx_tuple__192);
-  __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(1, 0, 11, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__192, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__193 = PyTuple_Pack(11, __pyx_n_s_tree_or_element, __pyx_n_s_tag_names, __pyx_n_s_matcher, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_ns_tags, __pyx_n_s_strip_comments, __pyx_n_s_strip_pis, __pyx_n_s_strip_entities, __pyx_n_s_c_ns_tags, __pyx_n_s_c_tag_count); if (unlikely(!__pyx_tuple__193)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__193);
+  __Pyx_GIVEREF(__pyx_tuple__193);
+  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(1, 0, 11, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_8, __pyx_n_s_strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":371
  * 
@@ -189663,9 +189860,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     b"Number encoding",
  *     b"Unfinished literal",
  */
-  __pyx_tuple__194 = PyTuple_Pack(24, __pyx_n_b_Ok, __pyx_kp_b_Number_encoding, __pyx_kp_b_Unfinished_literal, __pyx_kp_b_Start_of_literal, __pyx_kp_b_Expected_for_variable_reference, __pyx_kp_b_Undefined_variable, __pyx_kp_b_Invalid_predicate, __pyx_kp_b_Invalid_expression, __pyx_kp_b_Missing_closing_curly_brace, __pyx_kp_b_Unregistered_function, __pyx_kp_b_Invalid_operand, __pyx_kp_b_Invalid_type, __pyx_kp_b_Invalid_number_of_arguments, __pyx_kp_b_Invalid_context_size, __pyx_kp_b_Invalid_context_position, __pyx_kp_b_Memory_allocation_error, __pyx_kp_b_Syntax_error, __pyx_kp_b_Resource_error, __pyx_kp_b_Sub_resource_error, __pyx_kp_b_Undefined_namespace_prefix, __pyx_kp_b_Encoding_error, __pyx_kp_b_Char_out_of_XML_range, __pyx_kp_b_Invalid_or_incomplete_context, __pyx_kp_b_Stack_usage_error); if (unlikely(!__pyx_tuple__194)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__194);
-  __Pyx_GIVEREF(__pyx_tuple__194);
+  __pyx_tuple__195 = PyTuple_Pack(24, __pyx_n_b_Ok, __pyx_kp_b_Number_encoding, __pyx_kp_b_Unfinished_literal, __pyx_kp_b_Start_of_literal, __pyx_kp_b_Expected_for_variable_reference, __pyx_kp_b_Undefined_variable, __pyx_kp_b_Invalid_predicate, __pyx_kp_b_Invalid_expression, __pyx_kp_b_Missing_closing_curly_brace, __pyx_kp_b_Unregistered_function, __pyx_kp_b_Invalid_operand, __pyx_kp_b_Invalid_type, __pyx_kp_b_Invalid_number_of_arguments, __pyx_kp_b_Invalid_context_size, __pyx_kp_b_Invalid_context_position, __pyx_kp_b_Memory_allocation_error, __pyx_kp_b_Syntax_error, __pyx_kp_b_Resource_error, __pyx_kp_b_Sub_resource_error, __pyx_kp_b_Undefined_namespace_prefix, __pyx_kp_b_Encoding_error, __pyx_kp_b_Char_out_of_XML_range, __pyx_kp_b_Invalid_or_incomplete_context, __pyx_kp_b_Stack_usage_error); if (unlikely(!__pyx_tuple__195)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__195);
+  __Pyx_GIVEREF(__pyx_tuple__195);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":426
  * 
@@ -189674,22 +189871,22 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Extension(module, function_mapping=None, ns=None)
  * 
  */
-  __pyx_tuple__195 = PyTuple_Pack(7, __pyx_n_s_module, __pyx_n_s_function_mapping, __pyx_n_s_ns, __pyx_n_s_functions, __pyx_n_s_function_name, __pyx_n_s_xpath_name, __pyx_n_s_name_2); if (unlikely(!__pyx_tuple__195)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__195);
-  __Pyx_GIVEREF(__pyx_tuple__195);
-  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_9, __pyx_n_s_Extension, 426, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__196 = PyTuple_Pack(7, __pyx_n_s_module, __pyx_n_s_function_mapping, __pyx_n_s_ns, __pyx_n_s_functions, __pyx_n_s_function_name, __pyx_n_s_xpath_name, __pyx_n_s_name_2); if (unlikely(!__pyx_tuple__196)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__196);
+  __Pyx_GIVEREF(__pyx_tuple__196);
+  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(2, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_9, __pyx_n_s_Extension, 426, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":737
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  *     def getparent(self):             # <<<<<<<<<<<<<<
  *         return self._parent
  * 
  */
-  __pyx_tuple__197 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__197)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__197);
-  __Pyx_GIVEREF(__pyx_tuple__197);
-  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_9, __pyx_n_s_getparent, 735, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__198 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__198)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__198);
+  __Pyx_GIVEREF(__pyx_tuple__198);
+  __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_9, __pyx_n_s_getparent, 737, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":380
  * 
@@ -189698,10 +189895,10 @@ static int __Pyx_InitCachedConstants(void) {
  *                    regexp=True, smart_strings=True):
  *     u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
  */
-  __pyx_tuple__199 = PyTuple_Pack(5, __pyx_n_s_etree_or_element, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_regexp, __pyx_n_s_smart_strings); if (unlikely(!__pyx_tuple__199)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__199);
-  __Pyx_GIVEREF(__pyx_tuple__199);
-  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_10, __pyx_n_s_XPathEvaluator, 380, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__200 = PyTuple_Pack(5, __pyx_n_s_etree_or_element, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_regexp, __pyx_n_s_smart_strings); if (unlikely(!__pyx_tuple__200)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__200);
+  __Pyx_GIVEREF(__pyx_tuple__200);
+  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_10, __pyx_n_s_XPathEvaluator, 380, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":478
  * cdef object _replace_strings
@@ -189710,9 +189907,9 @@ static int __Pyx_InitCachedConstants(void) {
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  */
-  __pyx_tuple__202 = PyTuple_Pack(1, __pyx_kp_b__201); if (unlikely(!__pyx_tuple__202)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__202);
-  __Pyx_GIVEREF(__pyx_tuple__202);
+  __pyx_tuple__203 = PyTuple_Pack(1, __pyx_kp_b__202); if (unlikely(!__pyx_tuple__203)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__203);
+  __Pyx_GIVEREF(__pyx_tuple__203);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":479
  * cdef object _find_namespaces
@@ -189721,9 +189918,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * cdef class ETXPath(XPath):
  */
-  __pyx_tuple__204 = PyTuple_Pack(1, __pyx_kp_b__203); if (unlikely(!__pyx_tuple__204)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__204);
-  __Pyx_GIVEREF(__pyx_tuple__204);
+  __pyx_tuple__205 = PyTuple_Pack(1, __pyx_kp_b__204); if (unlikely(!__pyx_tuple__205)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__205);
+  __Pyx_GIVEREF(__pyx_tuple__205);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":435
  * 
@@ -189732,10 +189929,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         u"""strparam(strval)
  * 
  */
-  __pyx_tuple__205 = PyTuple_Pack(1, __pyx_n_s_strval); if (unlikely(!__pyx_tuple__205)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__205);
-  __Pyx_GIVEREF(__pyx_tuple__205);
-  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_11, __pyx_n_s_strparam, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__206 = PyTuple_Pack(1, __pyx_n_s_strval); if (unlikely(!__pyx_tuple__206)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__206);
+  __Pyx_GIVEREF(__pyx_tuple__206);
+  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_11, __pyx_n_s_strparam, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":449
  * 
@@ -189744,10 +189941,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         u"""set_global_max_depth(max_depth)
  * 
  */
-  __pyx_tuple__207 = PyTuple_Pack(1, __pyx_n_s_max_depth); if (unlikely(!__pyx_tuple__207)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__207);
-  __Pyx_GIVEREF(__pyx_tuple__207);
-  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_11, __pyx_n_s_set_global_max_depth, 449, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_tuple__208 = PyTuple_Pack(1, __pyx_n_s_max_depth); if (unlikely(!__pyx_tuple__208)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__208);
+  __Pyx_GIVEREF(__pyx_tuple__208);
+  __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_stefan_source_Python_lxml_11, __pyx_n_s_set_global_max_depth, 449, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":836
  * # XSLT PI support
@@ -189756,9 +189953,9 @@ static int __Pyx_InitCachedConstants(void) {
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  */
-  __pyx_tuple__209 = PyTuple_Pack(1, __pyx_kp_u_s_href_s_s); if (unlikely(!__pyx_tuple__209)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__209);
-  __Pyx_GIVEREF(__pyx_tuple__209);
+  __pyx_tuple__210 = PyTuple_Pack(1, __pyx_kp_u_s_href_s_s); if (unlikely(!__pyx_tuple__210)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__210);
+  __Pyx_GIVEREF(__pyx_tuple__210);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":22
  * # XMLSchema
@@ -189767,9 +189964,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"boolean(//xs:attribute[@default or @fixed][1])",
  *     namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})
  */
-  __pyx_tuple__210 = PyTuple_Pack(1, __pyx_kp_u_boolean_xs_attribute_default_or); if (unlikely(!__pyx_tuple__210)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_tuple__210);
-  __Pyx_GIVEREF(__pyx_tuple__210);
+  __pyx_tuple__211 = PyTuple_Pack(1, __pyx_kp_u_boolean_xs_attribute_default_or); if (unlikely(!__pyx_tuple__211)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_tuple__211);
+  __Pyx_GIVEREF(__pyx_tuple__211);
   __Pyx_RefNannyFinishContext();
   return 0;
   __pyx_L1_error:;
@@ -190884,9 +191081,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseContext.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseContext) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__BaseContext = &__pyx_type_4lxml_5etree__BaseContext;
   __pyx_type_4lxml_5etree__ElementUnicodeResult.tp_base = (&PyUnicode_Type);
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_type_4lxml_5etree__ElementUnicodeResult.tp_print = 0;
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementUnicodeResult", (PyObject *)&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementUnicodeResult", (PyObject *)&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ElementUnicodeResult = &__pyx_type_4lxml_5etree__ElementUnicodeResult;
   __pyx_vtabptr_4lxml_5etree__XPathContext = &__pyx_vtable_4lxml_5etree__XPathContext;
   __pyx_vtable_4lxml_5etree__XPathContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseContext;
@@ -192075,7 +192272,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                 return []
  * 
  */
-          __pyx_t_17 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_14MutableMapping_1keys, 0, __pyx_n_s_MutableMapping_keys, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L44_except_error;}
+          __pyx_t_17 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_14MutableMapping_1keys, 0, __pyx_n_s_MutableMapping_keys, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L44_except_error;}
           __Pyx_GOTREF(__pyx_t_17);
           if (PyObject_SetItem(__pyx_t_16, __pyx_n_s_keys, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L44_except_error;}
           __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
@@ -192159,7 +192356,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         raise KeyError, key
  * 
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_1__getitem__, 0, __pyx_n_s_ImmutableMapping___getitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_1__getitem__, 0, __pyx_n_s_ImmutableMapping___getitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_getitem, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192171,7 +192368,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         raise KeyError, key
  * 
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_3__setitem__, 0, __pyx_n_s_ImmutableMapping___setitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_3__setitem__, 0, __pyx_n_s_ImmutableMapping___setitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_setitem, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192183,7 +192380,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         raise KeyError, key
  * 
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_5__delitem__, 0, __pyx_n_s_ImmutableMapping___delitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_5__delitem__, 0, __pyx_n_s_ImmutableMapping___delitem, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_delitem, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192195,7 +192392,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         return False
  * 
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_7__contains__, 0, __pyx_n_s_ImmutableMapping___contains, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_7__contains__, 0, __pyx_n_s_ImmutableMapping___contains, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_contains, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192207,7 +192404,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         return 0
  * 
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_9__len__, 0, __pyx_n_s_ImmutableMapping___len, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_9__len__, 0, __pyx_n_s_ImmutableMapping___len, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_len, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192219,7 +192416,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         return ITER_EMPTY
  *     iterkeys = itervalues = iteritems = __iter__
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_11__iter__, 0, __pyx_n_s_ImmutableMapping___iter, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_ImmutableMapping_11__iter__, 0, __pyx_n_s_ImmutableMapping___iter, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s_iter_2, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -192368,7 +192565,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_encode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__120, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__121, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_7)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -192421,7 +192618,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__121, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__122, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -192494,9 +192691,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_LxmlError___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_LxmlError___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
-  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__126);
+  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__127);
   if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 
@@ -192657,7 +192854,7 @@ PyMODINIT_FUNC PyInit_etree(void)
       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_group); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L52_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__127, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L52_error;}
+      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__128, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L52_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
@@ -192894,34 +193091,34 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_L69_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":603
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":610
  *     return attributes
  * 
  * cdef object __RE_XML_ENCODING = re.compile(             # <<<<<<<<<<<<<<
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
  * 
  */
-  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":604
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":611
  * 
  * cdef object __RE_XML_ENCODING = re.compile(
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)             # <<<<<<<<<<<<<<
  * 
  * cdef object __REPLACE_XML_ENCODING = __RE_XML_ENCODING.sub
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":603
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":610
  *     return attributes
  * 
  * cdef object __RE_XML_ENCODING = re.compile(             # <<<<<<<<<<<<<<
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
  * 
  */
-  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(__pyx_kp_u_xml_s_encoding_s_s_s);
   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_kp_u_xml_s_encoding_s_s_s);
@@ -192929,7 +193126,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -192938,28 +193135,28 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":606
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":613
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
  * 
  * cdef object __REPLACE_XML_ENCODING = __RE_XML_ENCODING.sub             # <<<<<<<<<<<<<<
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
  * 
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
   __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":607
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":614
  * 
  * cdef object __REPLACE_XML_ENCODING = __RE_XML_ENCODING.sub
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match             # <<<<<<<<<<<<<<
  * 
  * cdef object _stripEncodingDeclaration(object xml_string):
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
   __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___HAS_XML_ENCODING, __pyx_t_1);
@@ -192985,7 +193182,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), __pyx_tuple__129, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), __pyx_tuple__130, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
   __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1));
@@ -193107,10 +193304,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * WARNING=1
  */
-  __Pyx_INCREF(__pyx_tuple__132);
+  __Pyx_INCREF(__pyx_tuple__133);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_LEVELS, __pyx_tuple__132);
-  __Pyx_GIVEREF(__pyx_tuple__132);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_LEVELS, __pyx_tuple__133);
+  __Pyx_GIVEREF(__pyx_tuple__133);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":746
  * """,)
@@ -193119,10 +193316,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * PARSER=1
  */
-  __Pyx_INCREF(__pyx_tuple__133);
+  __Pyx_INCREF(__pyx_tuple__134);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_DOMAINS, __pyx_tuple__133);
-  __Pyx_GIVEREF(__pyx_tuple__133);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_DOMAINS, __pyx_tuple__134);
+  __Pyx_GIVEREF(__pyx_tuple__134);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":780
  * """,)
@@ -193131,10 +193328,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __Pyx_INCREF(__pyx_tuple__134);
+  __Pyx_INCREF(__pyx_tuple__135);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES, __pyx_tuple__134);
-  __Pyx_GIVEREF(__pyx_tuple__134);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES, __pyx_tuple__135);
+  __Pyx_GIVEREF(__pyx_tuple__135);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1537
  * """,)
@@ -193143,10 +193340,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __Pyx_INCREF(__pyx_tuple__135);
+  __Pyx_INCREF(__pyx_tuple__136);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, __pyx_tuple__135);
-  __Pyx_GIVEREF(__pyx_tuple__135);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, __pyx_tuple__136);
+  __Pyx_GIVEREF(__pyx_tuple__136);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1581
  * # --- END: GENERATED CONSTANTS ---
@@ -193554,7 +193751,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_ParseError___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__173)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_ParseError___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
   if (PyObject_SetItem(__pyx_t_6, __pyx_n_s_init, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
@@ -193811,10 +194008,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * 
  */
-  __Pyx_INCREF(__pyx_tuple__177);
+  __Pyx_INCREF(__pyx_tuple__178);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_NS_END_EVENT);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_NS_END_EVENT, __pyx_tuple__177);
-  __Pyx_GIVEREF(__pyx_tuple__177);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_NS_END_EVENT, __pyx_tuple__178);
+  __Pyx_GIVEREF(__pyx_tuple__178);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":4
  * 
@@ -193864,7 +194061,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         self.result = result
  * 
  */
-  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_TargetParserResult___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_TargetParserResult___init, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__180)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
   if (PyObject_SetItem(__pyx_t_6, __pyx_n_s_init, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
@@ -194155,10 +194352,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     b"Number encoding",
  *     b"Unfinished literal",
  */
-  __Pyx_INCREF(__pyx_tuple__194);
+  __Pyx_INCREF(__pyx_tuple__195);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES);
-  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES, __pyx_tuple__194);
-  __Pyx_GIVEREF(__pyx_tuple__194);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES, __pyx_tuple__195);
+  __Pyx_GIVEREF(__pyx_tuple__195);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":426
  * 
@@ -194172,45 +194369,45 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyDict_SetItem(__pyx_d, __pyx_n_s_Extension, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":732
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":734
  *         return self._parent
  * 
  * class _ElementStringResult(bytes):             # <<<<<<<<<<<<<<
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  */
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
   PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)((PyObject*)(&PyBytes_Type))));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
-  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_ElementStringResult, __pyx_n_s_ElementStringResult, (PyObject *) NULL, __pyx_n_s_lxml_etree, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_ElementStringResult, __pyx_n_s_ElementStringResult, (PyObject *) NULL, __pyx_n_s_lxml_etree, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":737
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  *     def getparent(self):             # <<<<<<<<<<<<<<
  *         return self._parent
  * 
  */
-  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_ElementStringResult_getparent, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_ElementStringResult_getparent, NULL, __pyx_n_s_lxml_etree, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
-  if (PyObject_SetItem(__pyx_t_6, __pyx_n_s_getparent, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetItem(__pyx_t_6, __pyx_n_s_getparent, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":732
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":734
  *         return self._parent
  * 
  * class _ElementStringResult(bytes):             # <<<<<<<<<<<<<<
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  */
-  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ElementStringResult, __pyx_t_7, __pyx_t_6, NULL, 0, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ElementStringResult, __pyx_t_7, __pyx_t_6, NULL, 0, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ElementStringResult, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ElementStringResult, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -194511,7 +194708,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_16);
-  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__202, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__203, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_sub); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -194531,7 +194728,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_16);
-  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__204, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__205, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_findall); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -194961,7 +195158,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_tuple__209, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_tuple__210, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_16);
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__RE_PI_HREF);
@@ -195299,7 +195496,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"boolean(//xs:attribute[@default or @fixed][1])",
  *     namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})
  */
-  __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__210, __pyx_t_16); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_tuple__211, __pyx_t_16); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__check_for_default_attributes));
@@ -195450,39 +195647,39 @@ static void __Pyx_CleanupGlobals(void) {
   Py_CLEAR(__pyx_tuple__18);
   Py_CLEAR(__pyx_tuple__19);
   Py_CLEAR(__pyx_tuple__20);
-  Py_CLEAR(__pyx_tuple__22);
+  Py_CLEAR(__pyx_tuple__21);
   Py_CLEAR(__pyx_tuple__23);
-  Py_CLEAR(__pyx_tuple__26);
+  Py_CLEAR(__pyx_tuple__24);
   Py_CLEAR(__pyx_tuple__27);
   Py_CLEAR(__pyx_tuple__28);
-  Py_CLEAR(__pyx_slice__29);
-  Py_CLEAR(__pyx_slice__31);
+  Py_CLEAR(__pyx_tuple__29);
+  Py_CLEAR(__pyx_slice__30);
   Py_CLEAR(__pyx_slice__32);
   Py_CLEAR(__pyx_slice__33);
-  Py_CLEAR(__pyx_tuple__36);
+  Py_CLEAR(__pyx_slice__34);
   Py_CLEAR(__pyx_tuple__37);
   Py_CLEAR(__pyx_tuple__38);
   Py_CLEAR(__pyx_tuple__39);
   Py_CLEAR(__pyx_tuple__40);
   Py_CLEAR(__pyx_tuple__41);
   Py_CLEAR(__pyx_tuple__42);
-  Py_CLEAR(__pyx_slice__43);
-  Py_CLEAR(__pyx_tuple__44);
-  Py_CLEAR(__pyx_slice__45);
-  Py_CLEAR(__pyx_tuple__47);
+  Py_CLEAR(__pyx_tuple__43);
+  Py_CLEAR(__pyx_slice__44);
+  Py_CLEAR(__pyx_tuple__45);
+  Py_CLEAR(__pyx_slice__46);
   Py_CLEAR(__pyx_tuple__48);
   Py_CLEAR(__pyx_tuple__49);
   Py_CLEAR(__pyx_tuple__50);
-  Py_CLEAR(__pyx_tuple__57);
+  Py_CLEAR(__pyx_tuple__51);
   Py_CLEAR(__pyx_tuple__58);
   Py_CLEAR(__pyx_tuple__59);
-  Py_CLEAR(__pyx_tuple__61);
-  Py_CLEAR(__pyx_tuple__65);
-  Py_CLEAR(__pyx_slice__66);
+  Py_CLEAR(__pyx_tuple__60);
+  Py_CLEAR(__pyx_tuple__62);
+  Py_CLEAR(__pyx_tuple__66);
   Py_CLEAR(__pyx_slice__67);
-  Py_CLEAR(__pyx_tuple__68);
-  Py_CLEAR(__pyx_slice__69);
-  Py_CLEAR(__pyx_tuple__71);
+  Py_CLEAR(__pyx_slice__68);
+  Py_CLEAR(__pyx_tuple__69);
+  Py_CLEAR(__pyx_slice__70);
   Py_CLEAR(__pyx_tuple__72);
   Py_CLEAR(__pyx_tuple__73);
   Py_CLEAR(__pyx_tuple__74);
@@ -195495,15 +195692,15 @@ static void __Pyx_CleanupGlobals(void) {
   Py_CLEAR(__pyx_tuple__81);
   Py_CLEAR(__pyx_tuple__82);
   Py_CLEAR(__pyx_tuple__83);
-  Py_CLEAR(__pyx_slice__84);
+  Py_CLEAR(__pyx_tuple__84);
   Py_CLEAR(__pyx_slice__85);
-  Py_CLEAR(__pyx_tuple__86);
+  Py_CLEAR(__pyx_slice__86);
   Py_CLEAR(__pyx_tuple__87);
   Py_CLEAR(__pyx_tuple__88);
   Py_CLEAR(__pyx_tuple__89);
-  Py_CLEAR(__pyx_slice__90);
-  Py_CLEAR(__pyx_tuple__91);
-  Py_CLEAR(__pyx_tuple__93);
+  Py_CLEAR(__pyx_tuple__90);
+  Py_CLEAR(__pyx_slice__91);
+  Py_CLEAR(__pyx_tuple__92);
   Py_CLEAR(__pyx_tuple__94);
   Py_CLEAR(__pyx_tuple__95);
   Py_CLEAR(__pyx_tuple__96);
@@ -195517,108 +195714,109 @@ static void __Pyx_CleanupGlobals(void) {
   Py_CLEAR(__pyx_tuple__104);
   Py_CLEAR(__pyx_tuple__105);
   Py_CLEAR(__pyx_tuple__106);
-  Py_CLEAR(__pyx_codeobj__107);
-  Py_CLEAR(__pyx_tuple__108);
-  Py_CLEAR(__pyx_codeobj__109);
-  Py_CLEAR(__pyx_tuple__110);
-  Py_CLEAR(__pyx_codeobj__111);
-  Py_CLEAR(__pyx_tuple__112);
-  Py_CLEAR(__pyx_codeobj__113);
-  Py_CLEAR(__pyx_tuple__114);
-  Py_CLEAR(__pyx_codeobj__115);
-  Py_CLEAR(__pyx_tuple__116);
-  Py_CLEAR(__pyx_codeobj__117);
-  Py_CLEAR(__pyx_tuple__118);
-  Py_CLEAR(__pyx_codeobj__119);
-  Py_CLEAR(__pyx_tuple__120);
+  Py_CLEAR(__pyx_tuple__107);
+  Py_CLEAR(__pyx_codeobj__108);
+  Py_CLEAR(__pyx_tuple__109);
+  Py_CLEAR(__pyx_codeobj__110);
+  Py_CLEAR(__pyx_tuple__111);
+  Py_CLEAR(__pyx_codeobj__112);
+  Py_CLEAR(__pyx_tuple__113);
+  Py_CLEAR(__pyx_codeobj__114);
+  Py_CLEAR(__pyx_tuple__115);
+  Py_CLEAR(__pyx_codeobj__116);
+  Py_CLEAR(__pyx_tuple__117);
+  Py_CLEAR(__pyx_codeobj__118);
+  Py_CLEAR(__pyx_tuple__119);
+  Py_CLEAR(__pyx_codeobj__120);
   Py_CLEAR(__pyx_tuple__121);
   Py_CLEAR(__pyx_tuple__122);
-  Py_CLEAR(__pyx_codeobj__123);
-  Py_CLEAR(__pyx_tuple__124);
-  Py_CLEAR(__pyx_codeobj__125);
-  Py_CLEAR(__pyx_tuple__126);
+  Py_CLEAR(__pyx_tuple__123);
+  Py_CLEAR(__pyx_codeobj__124);
+  Py_CLEAR(__pyx_tuple__125);
+  Py_CLEAR(__pyx_codeobj__126);
   Py_CLEAR(__pyx_tuple__127);
-  Py_CLEAR(__pyx_codeobj__128);
-  Py_CLEAR(__pyx_tuple__129);
+  Py_CLEAR(__pyx_tuple__128);
+  Py_CLEAR(__pyx_codeobj__129);
   Py_CLEAR(__pyx_tuple__130);
-  Py_CLEAR(__pyx_codeobj__131);
-  Py_CLEAR(__pyx_tuple__132);
+  Py_CLEAR(__pyx_tuple__131);
+  Py_CLEAR(__pyx_codeobj__132);
   Py_CLEAR(__pyx_tuple__133);
   Py_CLEAR(__pyx_tuple__134);
   Py_CLEAR(__pyx_tuple__135);
   Py_CLEAR(__pyx_tuple__136);
-  Py_CLEAR(__pyx_codeobj__137);
-  Py_CLEAR(__pyx_tuple__138);
-  Py_CLEAR(__pyx_codeobj__139);
-  Py_CLEAR(__pyx_tuple__140);
-  Py_CLEAR(__pyx_codeobj__141);
-  Py_CLEAR(__pyx_tuple__142);
-  Py_CLEAR(__pyx_codeobj__143);
-  Py_CLEAR(__pyx_tuple__144);
-  Py_CLEAR(__pyx_codeobj__145);
-  Py_CLEAR(__pyx_tuple__146);
-  Py_CLEAR(__pyx_codeobj__147);
-  Py_CLEAR(__pyx_tuple__148);
-  Py_CLEAR(__pyx_codeobj__149);
-  Py_CLEAR(__pyx_tuple__150);
-  Py_CLEAR(__pyx_codeobj__151);
-  Py_CLEAR(__pyx_tuple__152);
-  Py_CLEAR(__pyx_codeobj__153);
-  Py_CLEAR(__pyx_tuple__154);
-  Py_CLEAR(__pyx_codeobj__155);
-  Py_CLEAR(__pyx_tuple__156);
-  Py_CLEAR(__pyx_codeobj__157);
-  Py_CLEAR(__pyx_tuple__158);
-  Py_CLEAR(__pyx_codeobj__159);
-  Py_CLEAR(__pyx_tuple__160);
-  Py_CLEAR(__pyx_codeobj__161);
-  Py_CLEAR(__pyx_tuple__162);
-  Py_CLEAR(__pyx_codeobj__163);
-  Py_CLEAR(__pyx_tuple__164);
-  Py_CLEAR(__pyx_codeobj__165);
-  Py_CLEAR(__pyx_tuple__166);
-  Py_CLEAR(__pyx_codeobj__167);
-  Py_CLEAR(__pyx_tuple__168);
-  Py_CLEAR(__pyx_codeobj__169);
-  Py_CLEAR(__pyx_tuple__170);
-  Py_CLEAR(__pyx_codeobj__171);
-  Py_CLEAR(__pyx_tuple__172);
-  Py_CLEAR(__pyx_codeobj__173);
-  Py_CLEAR(__pyx_tuple__174);
-  Py_CLEAR(__pyx_codeobj__175);
+  Py_CLEAR(__pyx_tuple__137);
+  Py_CLEAR(__pyx_codeobj__138);
+  Py_CLEAR(__pyx_tuple__139);
+  Py_CLEAR(__pyx_codeobj__140);
+  Py_CLEAR(__pyx_tuple__141);
+  Py_CLEAR(__pyx_codeobj__142);
+  Py_CLEAR(__pyx_tuple__143);
+  Py_CLEAR(__pyx_codeobj__144);
+  Py_CLEAR(__pyx_tuple__145);
+  Py_CLEAR(__pyx_codeobj__146);
+  Py_CLEAR(__pyx_tuple__147);
+  Py_CLEAR(__pyx_codeobj__148);
+  Py_CLEAR(__pyx_tuple__149);
+  Py_CLEAR(__pyx_codeobj__150);
+  Py_CLEAR(__pyx_tuple__151);
+  Py_CLEAR(__pyx_codeobj__152);
+  Py_CLEAR(__pyx_tuple__153);
+  Py_CLEAR(__pyx_codeobj__154);
+  Py_CLEAR(__pyx_tuple__155);
+  Py_CLEAR(__pyx_codeobj__156);
+  Py_CLEAR(__pyx_tuple__157);
+  Py_CLEAR(__pyx_codeobj__158);
+  Py_CLEAR(__pyx_tuple__159);
+  Py_CLEAR(__pyx_codeobj__160);
+  Py_CLEAR(__pyx_tuple__161);
+  Py_CLEAR(__pyx_codeobj__162);
+  Py_CLEAR(__pyx_tuple__163);
+  Py_CLEAR(__pyx_codeobj__164);
+  Py_CLEAR(__pyx_tuple__165);
+  Py_CLEAR(__pyx_codeobj__166);
+  Py_CLEAR(__pyx_tuple__167);
+  Py_CLEAR(__pyx_codeobj__168);
+  Py_CLEAR(__pyx_tuple__169);
+  Py_CLEAR(__pyx_codeobj__170);
+  Py_CLEAR(__pyx_tuple__171);
+  Py_CLEAR(__pyx_codeobj__172);
+  Py_CLEAR(__pyx_tuple__173);
+  Py_CLEAR(__pyx_codeobj__174);
+  Py_CLEAR(__pyx_tuple__175);
   Py_CLEAR(__pyx_codeobj__176);
-  Py_CLEAR(__pyx_tuple__177);
+  Py_CLEAR(__pyx_codeobj__177);
   Py_CLEAR(__pyx_tuple__178);
-  Py_CLEAR(__pyx_codeobj__179);
-  Py_CLEAR(__pyx_tuple__180);
-  Py_CLEAR(__pyx_codeobj__181);
-  Py_CLEAR(__pyx_tuple__182);
-  Py_CLEAR(__pyx_codeobj__183);
-  Py_CLEAR(__pyx_tuple__184);
-  Py_CLEAR(__pyx_codeobj__185);
-  Py_CLEAR(__pyx_tuple__186);
-  Py_CLEAR(__pyx_codeobj__187);
-  Py_CLEAR(__pyx_tuple__188);
-  Py_CLEAR(__pyx_codeobj__189);
-  Py_CLEAR(__pyx_tuple__190);
-  Py_CLEAR(__pyx_codeobj__191);
-  Py_CLEAR(__pyx_tuple__192);
-  Py_CLEAR(__pyx_codeobj__193);
-  Py_CLEAR(__pyx_tuple__194);
+  Py_CLEAR(__pyx_tuple__179);
+  Py_CLEAR(__pyx_codeobj__180);
+  Py_CLEAR(__pyx_tuple__181);
+  Py_CLEAR(__pyx_codeobj__182);
+  Py_CLEAR(__pyx_tuple__183);
+  Py_CLEAR(__pyx_codeobj__184);
+  Py_CLEAR(__pyx_tuple__185);
+  Py_CLEAR(__pyx_codeobj__186);
+  Py_CLEAR(__pyx_tuple__187);
+  Py_CLEAR(__pyx_codeobj__188);
+  Py_CLEAR(__pyx_tuple__189);
+  Py_CLEAR(__pyx_codeobj__190);
+  Py_CLEAR(__pyx_tuple__191);
+  Py_CLEAR(__pyx_codeobj__192);
+  Py_CLEAR(__pyx_tuple__193);
+  Py_CLEAR(__pyx_codeobj__194);
   Py_CLEAR(__pyx_tuple__195);
-  Py_CLEAR(__pyx_codeobj__196);
-  Py_CLEAR(__pyx_tuple__197);
-  Py_CLEAR(__pyx_codeobj__198);
-  Py_CLEAR(__pyx_tuple__199);
-  Py_CLEAR(__pyx_codeobj__200);
-  Py_CLEAR(__pyx_tuple__202);
-  Py_CLEAR(__pyx_tuple__204);
+  Py_CLEAR(__pyx_tuple__196);
+  Py_CLEAR(__pyx_codeobj__197);
+  Py_CLEAR(__pyx_tuple__198);
+  Py_CLEAR(__pyx_codeobj__199);
+  Py_CLEAR(__pyx_tuple__200);
+  Py_CLEAR(__pyx_codeobj__201);
+  Py_CLEAR(__pyx_tuple__203);
   Py_CLEAR(__pyx_tuple__205);
-  Py_CLEAR(__pyx_codeobj__206);
-  Py_CLEAR(__pyx_tuple__207);
-  Py_CLEAR(__pyx_codeobj__208);
-  Py_CLEAR(__pyx_tuple__209);
+  Py_CLEAR(__pyx_tuple__206);
+  Py_CLEAR(__pyx_codeobj__207);
+  Py_CLEAR(__pyx_tuple__208);
+  Py_CLEAR(__pyx_codeobj__209);
   Py_CLEAR(__pyx_tuple__210);
+  Py_CLEAR(__pyx_tuple__211);
   #if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
 Py_CLEAR(__pyx_print);
 Py_CLEAR(__pyx_print_kwargs);
index dd8d704..3f3b96d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.20.1 on Fri Apr 18 08:54:38 2014 */
+/* Generated by Cython 0.20.1 on Thu Aug 28 16:32:20 2014 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
@@ -31981,13 +31981,13 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   __Pyx_CleanupGlobals();
   /*--- Type import cleanup code ---*/
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Document);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_FallbackElementClassLookup);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
   /*--- Builtin cleanup code ---*/
   Py_CLEAR(__pyx_builtin_ValueError);
   Py_CLEAR(__pyx_builtin_TypeError);
index 52909f6..e3b7816 100644 (file)
@@ -167,6 +167,7 @@ cdef int attemptDeallocation(xmlNode* c_node):
 cdef xmlNode* getDeallocationTop(xmlNode* c_node):
     u"""Return the top of the tree that can be deallocated, or NULL.
     """
+    cdef xmlNode* c_next
     #print "trying to do deallocating:", c_node.type
     if hasProxy(c_node):
         #print "Not freeing: proxies still exist"
@@ -183,10 +184,22 @@ cdef xmlNode* getDeallocationTop(xmlNode* c_node):
             #print "Not freeing: proxies still exist"
             return NULL
     # see whether we have children to deallocate
-    if canDeallocateChildNodes(c_node):
-        return c_node
-    else:
+    if not canDeallocateChildNodes(c_node):
         return NULL
+    # see whether we have siblings to deallocate
+    c_next = c_node.prev
+    while c_next:
+        if _isElement(c_next):
+            if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+                return NULL
+        c_next = c_next.prev
+    c_next = c_node.next
+    while c_next:
+        if _isElement(c_next):
+            if hasProxy(c_next) or not canDeallocateChildNodes(c_next):
+                return NULL
+        c_next = c_next.next
+    return c_node
 
 cdef int canDeallocateChildNodes(xmlNode* c_parent):
     cdef xmlNode* c_node
index 41d6571..86aa176 100644 (file)
@@ -1490,6 +1490,48 @@ class ETreeOnlyTestCase(HelperTestCase):
         self.assertEqual(['b', 'a'],
                           [c.tag for c in root])
 
+    def test_addnext_cycle(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(a, 'b')
+        # appending parent as sibling is forbidden
+        self.assertRaises(ValueError, b.addnext, a)
+        self.assertEqual(['a'], [c.tag for c in root])
+        self.assertEqual(['b'], [c.tag for c in a])
+
+    def test_addprevious_cycle(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(a, 'b')
+        # appending parent as sibling is forbidden
+        self.assertRaises(ValueError, b.addprevious, a)
+        self.assertEqual(['a'], [c.tag for c in root])
+        self.assertEqual(['b'], [c.tag for c in a])
+
+    def test_addnext_cycle_long(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(a, 'b')
+        c = SubElement(b, 'c')
+        # appending parent as sibling is forbidden
+        self.assertRaises(ValueError, c.addnext, a)
+
+    def test_addprevious_cycle_long(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(a, 'b')
+        c = SubElement(b, 'c')
+        # appending parent as sibling is forbidden
+        self.assertRaises(ValueError, c.addprevious, a)
+
     def test_addprevious_noops(self):
         Element = self.etree.Element
         SubElement = self.etree.SubElement
@@ -3557,6 +3599,37 @@ class ETreeOnlyTestCase(HelperTestCase):
         gc.collect()
         # not really testing anything here, but it shouldn't crash
 
+    def test_proxy_collect_siblings(self):
+        root = etree.Element('parent')
+        c1 = etree.SubElement(root, 'child1')
+        c2 = etree.SubElement(root, 'child2')
+
+        root.remove(c1)
+        root.remove(c2)
+        c1.addnext(c2)
+        del c1
+        # trigger deallocation attempt of c1
+        c2.getprevious()
+        # make sure it wasn't deallocated
+        self.assertEqual('child1', c2.getprevious().tag)
+
+    def test_proxy_collect_siblings_text(self):
+        root = etree.Element('parent')
+        c1 = etree.SubElement(root, 'child1')
+        c2 = etree.SubElement(root, 'child2')
+
+        root.remove(c1)
+        root.remove(c2)
+        c1.addnext(c2)
+        c1.tail = 'abc'
+        c2.tail = 'xyz'
+        del c1
+        # trigger deallocation attempt of c1
+        c2.getprevious()
+        # make sure it wasn't deallocated
+        self.assertEqual('child1', c2.getprevious().tag)
+        self.assertEqual('abc', c2.getprevious().tail)
+
     # helper methods
 
     def _writeElement(self, element, encoding='us-ascii', compression=0):
index 4288dc2..0c74ef3 100644 (file)
@@ -1353,7 +1353,65 @@ class ETreeXSLTExtFuncTestCase(HelperTestCase):
 
         result = tree.xslt(style)
         self.assertEqual(self._rootstring(result),
-                          _bytes('<A>bXb</A>'))
+                         _bytes('<A>bXb</A>'))
+
+    def test_xpath_on_context_node(self):
+        tree = self.parse('<a><b>B<c/>C</b><b/></a>')
+        style = self.parse('''\
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:myns="testns"
+    exclude-result-prefixes="myns">
+  <xsl:template match="b">
+    <A><xsl:value-of select="myns:myext()"/></A>
+  </xsl:template>
+</xsl:stylesheet>''')
+
+        def extfunc(ctxt):
+            text_content = ctxt.context_node.xpath('text()')
+            return 'x'.join(text_content)
+
+        namespace = etree.FunctionNamespace('testns')
+        namespace['myext'] = extfunc
+
+        result = tree.xslt(style)
+        self.assertEqual(self._rootstring(result),
+                         _bytes('<A>BxC</A>'))
+
+    def test_xpath_on_foreign_context_node(self):
+        # LP ticket 1354652
+        class Resolver(etree.Resolver):
+            def resolve(self, system_url, public_id, context):
+                assert system_url == 'extdoc.xml'
+                return self.resolve_string(b'<a><b>B<c/>C</b><b/></a>', context)
+
+        parser = etree.XMLParser()
+        parser.resolvers.add(Resolver())
+
+        tree = self.parse(b'<a><b/><b/></a>')
+        transform = etree.XSLT(self.parse(b'''\
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:mypre="testns"
+    exclude-result-prefixes="mypre">
+  <xsl:template match="b">
+    <B><xsl:value-of select="mypre:myext()"/></B>
+  </xsl:template>
+  <xsl:template match="a">
+    <A><xsl:apply-templates select="document('extdoc.xml')//b" /></A>
+  </xsl:template>
+</xsl:stylesheet>''', parser=parser))
+
+        def extfunc(ctxt):
+            text_content = ctxt.context_node.xpath('text()')
+            return 'x'.join(text_content)
+
+        namespace = etree.FunctionNamespace('testns')
+        namespace['myext'] = extfunc
+
+        result = transform(tree)
+        self.assertEqual(self._rootstring(result),
+                         _bytes('<A><B>BxC</B><B/></A>'))
 
 
 class ETreeXSLTExtElementTestCase(HelperTestCase):
index fa7adc7..9c25013 100644 (file)
@@ -1 +1 @@
-3.3.5
+3.3.6